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)」ステートメントを見つけることができます。また、構成シェルを実行すると TARGET_LINUX マクロが生成されます。構成ファイルから次のようなステートメントを見つけることができます。

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

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

そのため、confiure shell を実行するときにパラメータ --host を追加する必要があります。パラメータには文字列「linux」が含まれている必要があります。例:

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