VS 2017 C ++静态库,带有/ MD项目依赖项问题

时间:2019-03-01 16:17:45

标签: c++ visual-studio

我是一个UNIX后端开发人员,在维护Visual Studio项目方面一劳永逸。我的大部分代码都在Linux上运行,而Windows占用的空间很小。这里有一个专门针对项目的专有规则,该规则规定所有系统依赖项必须动态链接,但是所有其他尚未安装在系统上的依赖项(必须由我控制)必须是静态的。换句话说,我可以使用boost,poco,mysql ++,zeromq等,但是这些必须静态链接。我也无法创建自己的DLL。我的Linux大脑猜测这是Windows的问题。

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

任何精通Visual Studio的人都知道最好的进行方法吗?

有人可以帮助我理解为什么投票失败吗?这不是一个巨魔,我不是一个试图让别人做我的作业的学生,​​这是我要在专业环境中解决的一个真正问题。我以为这就是stackoverflow的全部要点?

1 个答案:

答案 0 :(得分:0)

所以这很简单。当我添加参考时,我实际上并未单击该复选框。罗伯特·安德列祖克(Robert Andrzejuk)的第二条评论有所帮助,我之前已经读过,但是第一次没有注意到这个小复选框。

在添加参考页上(在解决方案浏览器中右键单击项目,单击Add-> References ...),必须选中该项目旁边的复选框。 Add reference widget