Visual Studio 2010不自动链接从属项目的静态库,因为它应该是应该的

  • 用C ++控制台命令行项目创build一个新的解决scheme
  • 创build一个新的项目,一个C ++静态库
  • 使命令行项目依赖于库
  • 确保在configuration=>链接器=>常规(默认情况下)中打开“链接库依赖关系”
  • Visual Studio仍然不会链接库。

我该如何解决这个问题? 它在Visual Studio 2008中工作。

这仍然有效,但在VS 2010中被改变了:

“在VS2010中,我们停止了对定义隐式引用的项目依赖项的支持,并且我们还引入了一种在项目级别定义项目依赖项的新方法。由于项目引用和项目依赖项都是非常接近的概念,所以既适用于项目,让它们以一致的方式一起表示在项目文件中,正如你将在下面的代码片段中看到的那样,项目引用定义和项目依赖性定义的唯一区别在于元数据定义了输出程序集包含/排除到/虽然我们没有删除“Project Dependencies”对话框,但我们build议通过“Framework and References”对话框定义新的项目依赖项,需要在属性页面中设置“Reference Assembly Output”属性UI对于项目依赖关系为false,对于项目引用为true“。

只需右键单击控制台项目,select“属性 – >通用属性 – >框架和引用 – >添加新引用”,并添加静态库项目; 还要检查右边的“链接库依赖关系”是否为真。 似乎适用于debugging和发布版本。 你每天都会学到新的东西。 ;)

他们改变了用于在VS2010中添加C ++项目依赖关系的UI,但奇怪的是,没有删除旧的UI,或以任何方式表明它不再工作。

要在VS2010中创build依赖关系,需要使用“添加新的引用”(可以在项目属性中find),也可以在项目的右键菜单中(不要在这里检查VS)

旧的“项目依赖关系”对话框现在已基本破解。

我相信,从IDE内部构build信息时,旧的UI(依赖项)会影响Visual Studio的构build顺序。 新的项目configuration系统将引用embedded到每个项目文件中,以便您可以从IDE外部进行构build(而在以前的版本中,您不能这样做,因为依赖关系只在解决scheme级别进行)。

新系统中更复杂的项目也存在一些问题。 具体而言,所有产生的二进制项目需要明确引用每个依赖库来正确构build,而之前它们可以有效地从其他依赖库inheritance。 同样的根本原因,虽然。

对于MSVC 14(2015版),右键单击该项目,然后select"Add->Reference..."并检查所有需要的依赖关系。

是的,它在2010年到2015年之间有所变化。 有趣!

如果你想链接一个包含资源的项目 – 你需要直接在链接器input依赖项(项目的属性对话框)列表中指定.res文件,因为它没有被上面的configuration获取。