当我使用 cmake 添加依赖项时如何禁用自动“.lib”附加?
How to disable auto ".lib" attaching when I add the dependencies with cmake?
我想link将“.obj”文件添加到我的项目中。
这是我的代码。
set(EXT_LIBS json_reader.obj json_writer.obj)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${EXT_LIBS})
但结果我的以下文件已被 link编辑。
json_reader.obj.lib
json_writer.obj.lib
".lib"
如果不是 *.lib 文件则自动附加。
我想要下一个结果
json_reader.obj
json_writer.obj
如何 link *.obj 文件到我的项目?
这样做应该包括它们:ADD_EXECUTABLE(myProgram ${OBJS} <other-sources>)
或者在你的情况下 ADD_EXECUTABLE(myProgram ${EXT_LIBS} <other-sources>)
如果您想 link 以不同方式 debug
和 release
if(${CMAKE_BUILD_TYPE} == "Debug")
set(EXT_LIBS json_reader.obj json_writer.obj)
else()
set(EXT_LIBS json_reader_alt.obj json_writer_alt.obj)
endif()
您可以通过添加条目将 CMAKE_BUILD_TYPE
参数添加到 cmake-gui。
A .LIB file is a collection of .OBJ files concatenated together with an index. There should be no difference in how the linker treats either.
As per answer
在我看来,add_library
仅适用于 .a
和 .lib
文件。
而TARGET_LINK_LIBRARIES
只增加了系统库文件。
我想link将“.obj”文件添加到我的项目中。
这是我的代码。
set(EXT_LIBS json_reader.obj json_writer.obj)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${EXT_LIBS})
但结果我的以下文件已被 link编辑。
json_reader.obj.lib
json_writer.obj.lib
".lib"
如果不是 *.lib 文件则自动附加。
我想要下一个结果
json_reader.obj
json_writer.obj
如何 link *.obj 文件到我的项目?
这样做应该包括它们:ADD_EXECUTABLE(myProgram ${OBJS} <other-sources>)
或者在你的情况下 ADD_EXECUTABLE(myProgram ${EXT_LIBS} <other-sources>)
如果您想 link 以不同方式 debug
和 release
if(${CMAKE_BUILD_TYPE} == "Debug")
set(EXT_LIBS json_reader.obj json_writer.obj)
else()
set(EXT_LIBS json_reader_alt.obj json_writer_alt.obj)
endif()
您可以通过添加条目将 CMAKE_BUILD_TYPE
参数添加到 cmake-gui。
A .LIB file is a collection of .OBJ files concatenated together with an index. There should be no difference in how the linker treats either. As per answer
在我看来,add_library
仅适用于 .a
和 .lib
文件。
而TARGET_LINK_LIBRARIES
只增加了系统库文件。