2

私は当惑しており、あなたの助けを求めています。

を必要とするプロジェクトをクロスコンパイルしていifaddrs.hますが、ファイルの場所をどのように指定しようとしても、ファイルが見つかりません。それはにあり/usr/include/ifaddrs.h、以下のコードを使用してそれを指すようにしました。(確かにこれはホスト システムのファイルですが、このコンテキストでは問題にならないはずです。ファイルをターゲット システムの include ディレクトリにも配置しましたが、/tmp/toolchain/include結果に違いはありません)。そして、message呼び出しは印刷されます/usr/include

ただし、ファイルを入れた${CMAKE_CURRENT_SOURCE_DIR}/../include 場合は見つかります。それはそこにあります、私はそれを見ることができます-なぜcmakeではないのですか?

FIND_FILE( IFADDRS ifaddrs.h PATH /usr/include )
get_filename_component(if_path ${IFADDRS} PATH)
message( "IFADDRS = " ${if_path} )
include_directories( ${if_path} )
include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/../include )

上記のコードを次のように変更します。

include_directories( BEFORE SYSTEM /usr/include )

実行すると、次のようになりmake VERBOSE=1ます。

[ 18%] Building C object CMakeFiles/cpcommon_lib.dir/eui48.c.o
/tmp/toolchain/arm-linux-uclibc/bin/gcc  -DPJ_AUTOCONF=1 -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -I/home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/../include -I/home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/../../pjproject/pjlib-util/include -I/home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/../../pjproject/pjlib/include -I/home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/../../pjproject/pjnath/include -I/usr/include/w32api -I/usr/X11R6/include -I/usr/include/X11 -I/usr/pkg/include -I/opt/csw/include -I/opt/include -I/usr/openwin/include -I/home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/../../cjson    -o CMakeFiles/cpcommon_lib.dir/eui48.c.o   -c /home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/eui48.c
In file included from /home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/eui48.c:26:
/home/bp/MySnapCam/projects/Communication/trunk/cpcommon/src/impl/eui48_unix.c:14:21: ifaddrs.h: No such file or directory

/usr/include/インクルードパスにはありません。flags.make ファイルにもありません。

4

0 に答える 0