1

我正在尝试使用 arm-uclinuxeabi 工具链交叉编译 openvpn 出现错误

init.o: In function `do_persist_tuntap':
init.c:(.text+0x1534): undefined reference to `tuncfg'

init.c 的以下部分出错

#ifdef ENABLE_FEATURE_TUN_PERSIST
      tuncfg (options->dev, options->dev_type, options->dev_node,
          options->persist_mode,
          options->username, options->groupname, &options->tuntap_options);

它的解决方案是什么?

我发现 tuncfg 是在 init.c 所在的同一文件夹中的 tun.c 文件中定义的

4

1 回答 1

1

我遇到了同样的问题,现在我已经解决了。原因可能是只有在定义了“TARGET_LINUX”宏时才启用“tuncfg”功能,你可以在tun.c中找到“#if defined(TARGET_LINUX)”语句。并且在执行 configure shell 时会生成 TARGET_LINUX 宏,您可以从配置文件中找到如下语句:

case "$host" in
        *-*-linux*)

$as_echo "#define TARGET_LINUX 1" >>confdefs.h

所以我们应该在执行配置shell的时候加上参数--host,并且参数应该包含字符串“linux”,例如:

./configure --host=mips-linux
于 2016-10-15T06:51:30.203 回答