是否有一种方法可以让CMake include_directories包含带有相等(=)字符的系统目录前缀?这样我就可以让gcc在相关的dirs前加上-isysroot标志,以便进行交叉编译。
当我尝试包含带有等于(=)前缀的路径时,假设为相对路径并使用当前源路径作为前缀:
include_directories(AFTER SYSTEM "=/usr/include")结果:
-isystem /root/opencv-2-4-9/opencv/modules/highgui/=/usr/include/我期望的是:
-isystem=/usr/include/发布于 2014-06-19 11:00:18
我检查了CMake的源代码( 2.8.12.2和3.0.0);在非windows系统中,CMake似乎添加了所有不以'/‘开头的路径。
生成器表达式是唯一的例外。如果path以"$<“开头,那么它跳过路径的前缀,并且在生成器表达式的计算之后没有前缀。因此
include_directories(AFTER SYSTEM "$<1:=>/usr/include")生成
-isystem =/usr/include/这似乎至少适用于CMake 3.0.0。当然,您应该将CMAKE_SYSROOT设置为gcc的前缀,并给出正确的路径。
set(CMAKE_SYSROOT /usr/arm-linux-gnueabi)发布于 2014-06-19 08:25:56
将它放在一个命令中:
set_target_properties(<targetname> PROPERTIES COMPILE_FLAGS "-isystem=/usr/include/")https://stackoverflow.com/questions/24288504
复制相似问题