我的cmake target_link_libraries有问题
我有3个库。第一个是静态编译,第二个是(共享lib)链接到它,第三个是使用第二个lib的可执行文件。
我的问题是我的第一个lib被自动添加到第三个lib并导致“已定义的对象”问题。
是否有可能将第一个lib隐藏起来?
我使用cmake 3.4.x. 编译:msvc 2010 x64
提前致谢
通卡
答案 0 :(得分:1)
您的第三个“lib”不是库,而是应用程序。您需要使用{{1}}而不是{{1}}添加此内容。
如果您的共享库链接在静态库中,然后您想要将应用程序链接到静态库和该共享库,则会获得静态库的两个副本。因此,切勿将您计划在其他地方使用的静态库链接到共享库。要么使第一个共享(名称暗示你想要的,因为它正是你所描述的),或者这个设计问题的解决方法可能是没有明确地将应用程序链接到静态库。
答案 1 :(得分:1)
我已经解决了。我可以链接到私有库,所以f.e。
$(".question").html()
将隐藏链接到MyLib2
的所有人的MyLib1