如何强制cmake在Linux中使用/ usr / include中的C ++头文件?

时间:2015-08-14 19:54:07

标签: c++ c linux cmake

我有一个使用/usr/include中安装的标头的cmake项目,我们称之为freeglut.h。当我使用find_package(GLUT)时,我${GLUT_INCLUDE_DIR}指向/usr/include。一切都很好。

现在,我正在添加CUDA,它会在find_package(CUDA)中包含的一个路径中保留这些和其他标头的副本。通常情况下,我会在${GLUT_INCLUDE_DIR}之前${CUDA_INCLUDE_DIRS}放置include_directories()来解决此问题。但是,在Unix系统上,cmake在UnixPaths.cmake中维护一个名为list的{​​{1}},其中包含CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES,并且显然保持cmake不会为编译器发出/usr/include个参数对于目录-I<dir>,意味着编译器首先搜索CUDA路径,并使用那里找到的/usr/include标头。

我尝试使用freeglut.hlist(REMOVE_ITEM ...列表中删除/usr/include,但这并未改变cmake所做的编译器命令。

我当然可以开始使用CUDA安装,删除我不想要的标头,或者修改CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES变量,但有一种干净的方法告诉cmake首先使用系统头文件,如果他们存在?

0 个答案:

没有答案