You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

子目录含独立CMakeLists.txt时,应在哪定义可执行目标?

解决方案

调整目标CMakeLists.txt文件

你需要修改src/data_generation/CMakeLists.txt,该文件负责处理data_generation子目录的编译逻辑,修改后生成的可执行文件会自动放在build/data_generation目录下,正好匹配你期望的运行路径。

修改内容

根据你的实际需求,分两种场景处理:

场景1:仅生成可执行文件(无需将data_generation作为库)

将原文件内容替换为:

# 指定源文件生成可执行文件
add_executable(main_data_generation main_data_generation.cc)

# 设置头文件搜索路径,确保能找到include目录下的头文件
target_include_directories(main_data_generation PUBLIC include)

场景2:保留data_generation库(供其他模块依赖)

如果后续有其他代码需要调用data_generation模块的功能,需将带main函数的文件从库中排除,单独生成可执行文件:

# 收集所有.cc文件,排除main_data_generation.cc
file(GLOB data_generation_SRC "*.cc")
list(REMOVE_ITEM data_generation_SRC "main_data_generation.cc")

# 生成data_generation静态库
add_library(data_generation ${data_generation_SRC})
target_include_directories(data_generation PUBLIC include)

# 生成可执行文件,并链接data_generation库
add_executable(main_data_generation main_data_generation.cc)
target_link_libraries(main_data_generation PRIVATE data_generation)

编译运行

修改完成后,在build目录下执行编译命令:

cmake --build .

编译成功后,即可通过以下命令运行可执行文件:

./build/data_generation/main_data_generation

内容的提问来源于stack exchange,提问作者Paolo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 15:00:18