Build CMAKE-对象库目标可能未链接到任何内容

Build CMAKE-对象库目标可能未链接到任何内容,build,cmake,Build,Cmake,下面的cMakeLists.txt文件出错。错误是 对象库目标“cm”可能未链接到任何内容 问题在于linetarget\u link\u库(cm corebase) 这在linux上构建正常,但我认为此错误在windows上发生 我很感激你有什么想法 file(GLOB base "*.cpp" ) file (GLOB model "*.cpp" ) file(GLOB logger "*.cpp" ) file(GLOB pass "*.cpp"

下面的cMakeLists.txt文件出错。错误是

对象库目标“cm”可能未链接到任何内容

问题在于line
target\u link\u库(cm corebase)

这在linux上构建正常,但我认为此错误在windows上发生

我很感激你有什么想法

file(GLOB base
   "*.cpp"
)

file (GLOB model
    "*.cpp"   
)

file(GLOB logger
     "*.cpp"  
)

file(GLOB pass
"*.cpp" 
)

file(GLOB compiler
    "src/compiler/*"
)

add_subdirectory(meta)

if (MSVC)
    add_library(cm OBJECT ${compiler} ${pass})
    add_library(corebase OBJECT ${base} ${logger})
    add_library(model OBJECT ${model})
    target_link_libraries(cm corebase)
    add_dependencies(cm generate-comp-api)
    add_dependencies(model generate-comp-api)
else()
    add_library(cm SHARED ${base} ${logger} ${pass} ${compiler})
    add_library(corebase SHARED ${base} ${logger})
    add_library(model SHARED ${model})
    target_link_libraries(cm corebase metamodel)
    add_dependencies(cm generate-comp-api)
    add_dependencies(model generate-comp-api)
    add_subdirectory(python/api)
    add_subdirectory(tests)
    add_subdirectory(contrib/googletest)
    #add_subdirectory(recordings)
endif(MSVC)

错误消息正确:不应链接到任何内容。相反,需要使用与库相对应的对象文件作为可执行/其他库的源文件:

# Create an OBJECT library
add_library(corebase OBJECT ${base} ${logger})
# And use its objects for other library.
add_library(cm OBJECT ${compiler} ${pass} $<TARGET_OBJECTS:corebase>)
#创建对象库
添加库(corebase对象${base}${logger})
#并将其对象用于其他库。
添加库(cm对象${compiler}${pass}$)