我有一个add_custom_target触发项目的make(该项目不使用cmake!)并生成一个目标文件.我想将此对象文件添加到项目的cmake中的可执行目标.有没有办法做到这一点?
mkm*_*afa 12
SET(OBJS
  ${CMAKE_CURRENT_SOURCE_DIR}/libs/obj.o
)
ADD_EXECUTABLE(myProgram ${OBJS} <other-sources>)
SET_SOURCE_FILES_PROPERTIES(
  ${OBJS}
  PROPERTIES
  EXTERNAL_OBJECT true
  GENERATED true
)
这对我有用.显然必须设置这两个属性,EXTERNAL_OBJECT和GENERATED.
我在我的项目中完成了这个target_link_libraries():
target_link_libraries(
    myProgram 
    ${CMAKE_CURRENT_SOURCE_DIR}/libs/obj.o
)
target_link_libraries()假定给定的任何完整路径都是要转发到链接器的文件.
对于CMake版本> = 3.9,add_library(... OBJECT IMPORTED ..)您可以使用目标.
而且 - 请参阅@arrowd的答案 - 有未记录的方法将它们直接添加到目标的源文件列表中(实际上意味着支持add_custom_command()构建步骤的目标文件输出,就像你的情况一样).
| 归档时间: | 
 | 
| 查看次数: | 12199 次 | 
| 最近记录: |