Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在“文件”中定位.cpp文件;src目录";使用CMake? 我现在正在学习C++和cFILE。我的源文件位于CMakeLists.txt所在的主目录中。我想将所有源文件存储在/src目录中,但我不知道如何在CMake中找到它们_Cmake - Fatal编程技术网

如何在“文件”中定位.cpp文件;src目录";使用CMake? 我现在正在学习C++和cFILE。我的源文件位于CMakeLists.txt所在的主目录中。我想将所有源文件存储在/src目录中,但我不知道如何在CMake中找到它们

如何在“文件”中定位.cpp文件;src目录";使用CMake? 我现在正在学习C++和cFILE。我的源文件位于CMakeLists.txt所在的主目录中。我想将所有源文件存储在/src目录中,但我不知道如何在CMake中找到它们,cmake,Cmake,我的CMake文件 cmake_minimum_required(VERSION 2.8) project(game) set(GAME_ALL_SOURCES main.cpp check.cpp ) add_executable(game ${GAME_ALL_SOURCES}) target_link_libraries(game sfml-graphics sfml-window sfml-system) 有人建议怎么处理吗 致以最诚挚的问候试试看 set(GAME_ALL

我的CMake文件

cmake_minimum_required(VERSION 2.8)
project(game)

set(GAME_ALL_SOURCES
    main.cpp check.cpp
)

add_executable(game ${GAME_ALL_SOURCES})
target_link_libraries(game sfml-graphics sfml-window sfml-system)
有人建议怎么处理吗

致以最诚挚的问候

试试看

set(GAME_ALL_SOURCES
src/main.cpp src/check.cpp
)

如果要在
src
目录中查找所有
.cpp
文件,可以执行以下操作

file(GLOB SOURCES src/*.cpp)
并在需要时使用
${SOURCES}
。例如:

add_executable(game ${SOURCES})

嗯。这条路看起来不太舒服。我在找像VPATH这样的东西。我阅读了“PROJECT\u SOURCE\u DIR”Cmake变量,但我不知道如何使用它。此变量定义为cmake处理的最后一个项目()的位置。顺便说一句。这就是我在使用CMake生成我所有项目的5年多时间里所做的回答。此外,即使PROJECT_SOURCE_DIR就是为了这个目的而编写set(GAME_all_SOURCES${PROJECT_SOURCE_DIR}/main.cpp${PROJECT_SOURCE_DIR}/check.cpp)+1,因为它允许您列出和分组特定的文件,不是更痛苦吗。如果您使用的是CMake 3.12+,则可以使用中所述的
列表(TRANSFORM GAME\u ALL\u SOURCES PREPEND“src/”
)重复预结束源目录(“src/”)。如果需要包含所有子目录中的所有文件,请使用
全局递归
而不是
全局