gpt4 book ai didi

c++ - 如何运行所有子目录 CMakeList 文件并捕获输出?

转载 作者:行者123 更新时间:2023-11-28 00:05:06 27 4
gpt4 key购买 nike

我是 cmake 文件创建的新手。我在目录列表中有 C++ 代码,每个目录都有自己的 CMakeLists.txt 文件。为了在每个目录中编译和创建可执行文件,我必须进入目录并在终端上执行以下两个命令。

$ cmake .
$ make

示例目录结构: enter image description here

每个目录 1、2 ...41 都有自己的“CMakeLists.txt”。

每个目录文件结构中的示例: enter image description here

为了在每个目录中编译和创建可执行文件,我必须遵循那些拖曳命令。

但现在我必须编写 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com