使用CMake将obj文件添加到链接器输入

4

我有一个cmake项目需要连接到一个包含一些.lib文件和一个.obj文件的库。我找到了一些线索告诉我如何连接一个.obj文件,但大多数解决方案似乎非常复杂。

我真正想做的就是告诉cmake将这个.obj文件添加到我的Visual Studio项目的链接器输入中。

我尝试像使用普通lib文件一样进行链接:

target_link_libraries(Foo C:/a.lib C:/b.lib C:/c.obj)

然而,当我在生成的VS项目中检查链接器输入时,CMake已经删除了完整路径并在obj文件后添加了“.lib”:
C:/a.lib
C:/b.lib
c.obj.lib

获得这个结果最简单的方法是什么:

C:/a.lib
C:/b.lib
C:/c.obj

请注意,这仅需要在Windows和Visual Studio上工作。

我不明白这个链接的问题与此有何关联? - pqvst
1
这是否太难了 http://www.cmake.org/pipermail/cmake/2008-November/025541.html? - wojciii
1个回答

3

当我发现你的问题时,我也遇到了同样的问题。以下代码行可以解决此问题:

SET_TARGET_PROPERTIES(my_project PROPERTIES LINK_FLAGS "/link setargv.obj")

链接被添加到项目链接器设置中命令行部分的附加选项中。

3
由于某种原因,我必须删除“/link”这一部分。所以我有以下内容(在Visual Studio 14 2015 Winx64上似乎有效)。这将在Windows中启用shell通配符。set_target_properties(codexcompressionutil PROPERTIES LINK_FLAGS "setargv.obj") - Harry Mallon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接