C++ VS 2017 C++;使用/MD项目依赖项问题编译的静态库

C++ VS 2017 C++;使用/MD项目依赖项问题编译的静态库,c++,visual-studio,C++,Visual Studio,我是一名unix后端开发人员,在维护VisualStudio项目方面有一点经验。我的绝大多数代码都在Linux上运行,占用的Windows空间很小。这里有一条专有的特定于项目的规则,规定所有系统依赖项必须动态链接,但所有其他尚未安装在系统上的依赖项(谢天谢地,我不控制这些依赖项)必须是静态的。换句话说,我可以使用boost、poco、mysql++、zeromq等,但这些都必须静态链接。我也不能创建自己的DLL。我的Linux大脑猜测规则就是我的Windows问题 作为项目的一部分,我有一个很大

我是一名unix后端开发人员,在维护VisualStudio项目方面有一点经验。我的绝大多数代码都在Linux上运行,占用的Windows空间很小。这里有一条专有的特定于项目的规则,规定所有系统依赖项必须动态链接,但所有其他尚未安装在系统上的依赖项(谢天谢地,我不控制这些依赖项)必须是静态的。换句话说,我可以使用boost、poco、mysql++、zeromq等,但这些都必须静态链接。我也不能创建自己的DLL。我的Linux大脑猜测规则就是我的Windows问题

作为项目的一部分,我有一个很大的静态库,其中包含许多链接到其他程序的通用代码。该静态库是compiled/MD,这似乎是我在Windows上动态链接系统库所必须做的。但是,我需要将该库静态链接到其他程序。当我在VS2017中将对库的引用添加到其他项目中时,什么都没有发生,符号也没有被解析,我得到了很多链接错误。为了解决这个问题,我通过Linker->Input->Additional Dependencies将我的库硬编码到其他各种项目中,这种方式“有效”,代码链接并运行,但VS无法解决静态库依赖关系。虽然我可以继续使用这个解决方案,但它并不理想。重建解决方案总是会导致失败(或者将旧代码链接到新版本中),因为大型静态库总是花费最长的时间,而其他项目都不知道如何等待该版本完成。解决方法是首先构建静态库,然后构建整个项目

对VisualStudio更精通的人知道最好的方法吗


有人能帮我理解为什么这会被否决吗?这不是一个怪人,我也不是一个试图找人做作业的学生,这是一个真正的问题,我正试图在一个专业环境中解决。我认为这就是stackoverflow的全部意义?

所以这很简单。当我去添加引用时,我实际上没有点击复选框。罗伯特·安德泽朱克的第二条评论很有帮助,我以前读过,但第一次没有注意到这个小复选框

在“添加引用”页面上(右键单击解决方案浏览器中的项目,添加->引用…),必须选中项目旁边的复选框。

不相关:我认为规则是防止DLL地狱。不管操作系统如何,最终这都是每个人的问题。任何时候一个程序可能与不正确的库版本不匹配,都有可能出现问题。