8

今天我启动了 Visual Studio 2010 (Visual C++) 并开始着手一个项目。该解决方案包含两个项目。一个是我正在编写的静态库,另一个是包含该库的单元测试的测试应用程序。

在不更改昨天的任何内容的情况下,可执行文件不再链接:

LINK : fatal error LNK1104: cannot open file 'mylib.lib'

静态库编译和链接很好。我在大约一周内没有更改项目设置,昨天链接还不错。

如果我进入可执行项目的设置并为 . 添加库目录$(SolutionDir)\debug,则会收到以下链接错误:

LINK : fatal error LNK1104: cannot open file 'kernel32.lib'

我不确定问题是什么。我尝试过清理、重建,甚至重新启动我的机器。谷歌在古老的 Visual C++ 版本中发现了一些错误(但我使用的是 2010),以及程序已经在运行的可能性。但是,它没有运行,并且重新启动确认了这一点。

什么会导致链接器找不到诸如 kernel32.lib 之类的核心库,或者就此而言,找不到我的解决方案的输出目录?

这是老式的 C++,一个跨平台库,而不是微软添加的托管内容。

4

3 回答 3

4

我必须在“库目录”对话框中检查“从父级或项目默认值继承”。一旦我这样做了,链接器就可以找到所有必要的库。我仍然必须包括在内$(SolutionDir)\debug

于 2010-09-05T21:33:49.250 回答
3

在 project->properties->linker->general->additional library 目录中包含 microsoft SDK 目录。

在我的电脑上是

D:\Program Files\Microsoft SDKs\Windows\v7.1\Lib

于 2012-11-25T22:50:46.637 回答
1

我通过禁用“启用 .NET Framework 源单步执行”解决了这个问题(请参阅:“菜单栏/工具/选项/调试/常规/启用 .NET Framework 源单步执行”)。显然这是 Visual Studio 中的一个错误

于 2011-03-01T08:29:59.367 回答