VS2013: LNK1104错误时,与项目在同一解决方案链接
VS2013: LNK1104 error when linking with project in same solution
这可能是SO上最愚蠢的问题之一,但是我解决不了。
我有一个包含三个项目a, B和C的解决方案。a和B是静态库项目,C是一个与a和B链接的exe项目。我已经设置了构建目录,以便每个项目的构建工件位于如下:
A: $(SolutionDir)$(PlatformName)$(Configuration)LibA.lib
B: $(SolutionDir)$(PlatformName)$(Configuration)LibB.lib
C: $(SolutionDir)$(PlatformName)$(Configuration)BinC.exe
由于项目C中内置的exe期望A和B中的库,我已将库A.lib和B.lib添加到项目C Properties->Linker->General->Additional Dependencies。我已经将A和B的目录位置完全按照上面列出的添加到Project Properties->Linker->General->Additional Libraries Directories.
链接时,我得到链接器错误LNK1104:无法打开a.b lib文件
有人能帮忙吗?我有一些使用VS的经验,但这是我第一次从头开始构建一个多项目解决方案。
许多谢谢。当您说您已经完全按照列表添加了目录时,您是指文件名也添加了目录吗?因为只有目录部分应该存在,即$(SolutionDir)$(PlatformName)$(Configuration)Lib
。
除此之外,您需要确保项目实际上是按照正确的顺序构建的。MSBuild将愉快地尝试在A
和B
之前(或并行)编译C
。要做到这一点,要么使用References
属性页(在Project->Properties->Common Properties
下),要么使用Project Dependencies
对话框(Project->Project Dependencies...
)手动强制它。
我应该提到,使用项目引用机制是管理依赖关系的"新"和推荐的方法——它应该自动添加被引用项目的输出作为引用项目的输入依赖,而不必手动指定它们。在过去,我自己并不总是很幸运地让这部分工作,但它确实至少正确地配置了依赖链。
为了完整起见,请注意,只有在编译的项目中实际包含任何符号时才会生成.lib文件(因此,如果您的项目为空或没有定义符号,编译它将不会生成.lib文件,从而破坏所有依赖项目的构建)。
- 将单元测试添加到旧解决方案时出现链接错误
- 在可视化解决方案 c++ 中获取链接器错误
- 无法通过一次编译所有文件来解决的链接器错误
- C++/VS 2012-多项目解决方案:一个项目中存在链接器错误,但另一个项目没有
- 将解决方案升级到VS2012后出现链接器错误
- 有没有一种方法可以在不重建任何项目的情况下重新链接解决方案
- 在C++解决方案中重用基类时,MSVC链接器错误LNK2019
- 有没有办法在Visual Studio中将来自不同解决方案的类链接在一起
- Qt中许多Windows函数的未解决的链接器错误
- Xerces C++未解决的链接器错误
- 如何解决 Winusb 链接错误
- 如何解决此链接器错误(unicode、boost、TCHAR/tstring(visual studio 2008))
- 多个源文件中的外部全局变量未解决的链接器错误
- 如何解决动态链接XCode项目到lib4cxx库时的单符号链接错误
- 如何解决此链接错误
- VS2013: LNK1104错误时,与项目在同一解决方案链接
- 如何解决libCurl链接器错误在Borland c++(版本5.02)
- 未解决的链接错误
- Mergevec.obj:10个未解决的链接错误(用于haartraining的OpenCV样本收集)
- 如何解决此链接器错误