为什么cmake首先在主机系统中找到头文件,而不是在交叉编译时首先查找sysroot

时间:2017-09-23 07:54:55

标签: cmake

我交叉编译第三方lib使用cmake,我创建了一个像这样的toolchain.make

SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)

SET(CMAKE_C_COMPILER  aarch64-poky-linux-gcc)

SET(CMAKE_CXX_COMPILER  aarch64-poky-linux-g++)

SET(CMAKE_FIND_ROOT_PATH /home/sundq/workspace/mengbin/tmp/Conexant_2Mic/build/tmp/sysroots/aud8516-slc) 

SET(CMAKE_SYSROOT /home/sundq/workspace/mengbin/tmp/Conexant_2Mic/build/tmp/sysroots/aud8516-slc)
SET(CMAKE_SYSROOT_COMPILE "${CMAKE_SYSROOT}")
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

问题是:为什么cmake首先在主机系统路径/usr/include/gstreamer-2.0中找到gstreamer-2.0头文件,而不是在sysroot路径${CMAKE_SYSROOT}/usr/include/gstreamer-2.0中找到。我的意思是我设置了 SET(仅限CMAKE_FIND_ROOT_PATH_MODE_INCLUDE) ONLY 值意味着在目标目录中查找头文件,而不是在主机目录中,但似乎这个参数 CMAKE_FIND_ROOT_PATH_MODE_INCLUDE 不起作用!!!

0 个答案:

没有答案