cmake - CMake all_object_files 目标
问题描述
我想创建一个 CMake 目标来构建所有目标文件。为此,我首先修改了所有目标以构建一个目标文件库并链接它:
add_library(exe_object_files OBJECT ${sources})
add_executable(exe $<TARGET_OBJECTS:exe_object_files>)
由于我有多个可执行文件,我为所有目标文件添加了一个目标,并将每个可执行文件的目标添加为依赖项:
add_custom_target(all_exe_object_files)
add_dependencies(all_exe_object_files exe_object_files)
这增加了一个all_exe_object_files
我可以制作的目标,但制作目标没有任何作用。
然后我尝试将目标文件添加为源:
get_target_property(all_exe_object_files_sources all_exe_object_files SOURCES)
if(NOT all_exe_object_files_sources)
set(all_exe_object_files_sources)
endif()
list(APPEND all_exe_object_files_sources $<TARGET_OBJECTS:exe_object_files>)
set_target_properties(all_exe_object_files PROPERTIES SOURCES "${all_exe_object_files_sources}")
这没有帮助。
我猜原因是它的add_library(... OBJECT ...)
行为类似于add_custom_command
并且只有在目标使用它们时才会构建文件(并且我的自定义目标可能不计入使用生成的文件)。
我做错了什么,如何创建一个目标来构建所有目标文件?
解决方案
推荐阅读
- jquery - 使用 .each() 计算循环内的字段
- php - 在 Laravel 5 中为使用 json 方法链接的响应助手添加宏时出错
- android - 如何从当前 ViewPager 视图中获取 Activity 中的 TextView
- php - 85/5000 PHP 中的异步方程:一个变量依赖于另一个尚未声明的变量
- linux - 更改 GCC 编译器 4.1.2 的一些配置时间选项
- c# - 有人能解释一下这个语法吗:QueryService
(这个IServiceProvider serviceProvider,out T service) where T : class - sql-server - SQLEXPR_x64_ENU 安装后管理工作室未显示
- sql-server - SQL查询根据行中的值返回值
- arduino - 结构无效输出的 Arduino
- python - 通过转义字符拆分字符串