我可以将外部lib链接到仅限标题的Visual Studio项目以用于其他解决方案吗?

时间:2014-04-15 11:54:15

标签: c++ visual-studio visual-studio-2012 boost linker

我一直在使用Boost的ASIO库来进行网络和套接字通信。现在,我已经到了开发周期的某个阶段,我想要清理它们并使它们更加模块化。我的第一个想法是,我将仅使用一个单独的项目来处理网络通信部分(基本上将与Boost相关的因素分解出来),并在两个不同的Visual Studio解决方案中使用一个visual studio项目。类似的东西:

Client.sln
->  Client.vcxproj
->  Networking.vcxproj

Server.sln
->  Server.vcxproj
->  Networking.vcxproj

我尝试这样做,但我遇到的问题是我的Networking.vcxproj已经变成了一个仅限标题的项目,因为我除了创建模板类之外什么也没做。我理想的做法是仅在Networking.vcxproj中放置对boost预编译库的引用,并链接到Networking.vcxproj的输出。但是,如果我理解正确,由于我的Networking.vcxproj没有.cpp文件,因此无法链接。

有没有办法链接我的Networking项目和boost ASIO libs而不指定所有项目中的所有其他库依赖项?即,有没有办法以某种方式创建项目设置,以便每次我创建一个使用Networking.vcxproj项目的新应用程序时,我不必复制boost库依赖项?

1 个答案:

答案 0 :(得分:1)

尝试放

#pragma comment(lib, "libname.lib")

在您的一个网络头文件中。这应该强制包含该标题的任何项目链接到指定的库(名称为" libname")。

请参阅 pragma comment