我交叉编译第三方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 不起作用!!!