首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VS2013:在同一解决方案中与项目链接时的LNK1104错误

VS2013:在同一解决方案中与项目链接时的LNK1104错误
EN

Stack Overflow用户
提问于 2015-07-16 19:04:02
回答 1查看 390关注 0票数 2

这可能是最愚蠢的问题之一,但我无法解决。

我有一个包含三个项目A、B和C的解决方案,A和B是静态库项目,C是一个与A和B链接的exe项目,我设置了构建目录,以便每个项目的构建工件位于如下位置:

代码语言:javascript
复制
A: $(SolutionDir)\$(PlatformName)\$(Configuration)\Lib\A.lib
B: $(SolutionDir)\$(PlatformName)\$(Configuration)\Lib\B.lib
C: $(SolutionDir)\$(PlatformName)\$(Configuration)\Bin\C.exe

由于项目C中构建的exe需要A和B中的库,所以我在项目C属性中添加了库A.lib和B.lib ->Linker->General->附加依赖项。我将A和B的目录位置添加到Properties>Linker->General->附加库目录中,与上面列出的完全相同。

链接时,我得到链接器错误LNK1104:无法打开文件A.lib

有人能帮忙吗?我有一些使用VS的经验,但这是我第一次从零开始构建多项目解决方案。

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-07-16 21:32:16

当您说您添加的目录与所列的完全相同时,是否也使用了文件名?因为应该只存在目录部分,即$(SolutionDir)\$(PlatformName)\$(Configuration)\Lib

除此之外,您还需要确保项目实际上是按照正确的顺序构建的。MSBuild将乐于在AB之前(或与之并行)编译A。为此,要么使用References属性页(在Project->Properties->Common Properties下),要么使用Project Dependencies对话框(Project->Project Dependencies...)手动强制使用。

我应该指出,使用项目引用机制是管理依赖关系的“新”和推荐的方法--它应该自动将引用项目的输出添加为引用项目的输入依赖项,而不必手动指定它们。在过去,我并不总是很幸运地让这个部分自己工作,但是它确实至少正确地配置了依赖链。

为了完整起见,请注意,只有在编译的项目中实际包含了任何符号时才会生成.lib文件(因此,如果项目为空或没有定义符号,则编译它将不会生成.lib文件,从而破坏所有依赖项目的构建)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31462472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档