我是 cmake 文件创建的新手。我在目录列表中有 C++ 代码,每个目录都有自己的 CMakeLists.txt
文件。为了在每个目录中编译和创建可执行文件,我必须进入目录并在终端上执行以下两个命令。
$ cmake .
$ make
每个目录 1、2 ...41 都有自己的“CMakeLists.txt”。
为了在每个目录中编译和创建可执行文件,我必须遵循那些拖曳命令。
但现在我必须编写 python 脚本/cmake 脚本来在每个目录中执行上述操作,并捕获输出并存储在日志文件中。
请任何人指导我解决我的问题。提前致谢。
我的每个目录 CMakeLists.txt 是这样的:
project(foundations)
cmake_minimum_required(VERSION 2.6)
include_directories($ENV{GMOCK_HOME}/include $ENV{GMOCK_HOME}/gtest/include)
link_directories($ENV{GMOCK_HOME}/mybuild $ENV{GMOCK_HOME}/gtest/mybuild)
add_definitions(-std=c++11)
set(sources main.cpp RetweetCollectionTest.cpp)
add_executable(test ${sources})
target_link_libraries(test pthread)
target_link_libraries(test gmock)
target_link_libraries(test gtest)
最佳答案
添加子目录 https://cmake.org/cmake/help/v3.0/command/add_subdirectory.html正是您所需要的。
编辑:
例如:
add_subdirectory(1 1)
其中第一个参数是source dir,第二个是binary dir。因此,名称不应重叠。
另外,检查这个:https://stackoverflow.com/a/7788165/934691
但是,如果你不想重写你的 CMakeLists,一个简单的 bash 脚本就像
for dir in
ls
;做 cd $dir;制作。 && 制作;裁谈会..;完成
会更适合你。
关于c++ - 如何运行所有子目录 CMakeList 文件并捕获输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36163073/