我正在尝试使用CMake来构建我的C ++项目,但是我在头文件路径方面遇到了问题。
由于我正在使用许多组织在多个目录中的类,所有我的包含语句都是使用绝对路径(因此不需要使用“../../”),但是当尝试制作CMake生成的Makefile时,它就无法正常工作。
是否有人知道如何在CMakeLists.txt中指定所有包含文件都是使用绝对路径?
我的输出结果是:~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:45:25: Utils/Utils.h: 没有那个文件或目录 ~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:46:35: Utils/StreamTokenizer.h: 没有那个文件或目录
我的CMakeLists.txt文件:
由于我正在使用许多组织在多个目录中的类,所有我的包含语句都是使用绝对路径(因此不需要使用“../../”),但是当尝试制作CMake生成的Makefile时,它就无法正常工作。
是否有人知道如何在CMakeLists.txt中指定所有包含文件都是使用绝对路径?
我的输出结果是:~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:45:25: Utils/Utils.h: 没有那个文件或目录 ~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:46:35: Utils/StreamTokenizer.h: 没有那个文件或目录
我的CMakeLists.txt文件:
#The following command allows the use of the "file" command
cmake_minimum_required(VERSION 2.6)
#The declaration of the project
project(multiboost)
#This allows recursive parsing of the source files
file(
GLOB_RECURSE
source_files
*
)
list(REMOVE_ITEM source_files ./build/* )
#This indicates the target (the executable)
add_executable(
multiboost
${source_files} #EXCLUDE_FROM_ALL build/
)
CMakeLists.txt
,从而在运行make
时强制cmake
重新运行。如果不这样做,新添加或删除的文件将无法被捕获,导致程序出错。 - Jack Kelly