【问题标题】:how to link with an extra object file?如何链接额外的目标文件?
【发布时间】:2014-02-20 09:24:10
【问题描述】:

我有一个正确编译的可视化 c++ 项目。 Myproject.vcxproj 包含 a1.cpp、a2.cpp。 现在我想从项目中删除 a1.cpp 并与之前生成的 a1.obj 链接。

我已将 $(SolutionDir) 添加到 VC++/Library 目录 我已将 a1.obj 添加到链接器/输入/附加依赖项

我收到以下错误消息 LINK : 致命错误 LNK1104: 无法打开文件 'a1.obj'

我做错了什么? 我正在使用 Visual C++ Express 2010。

【问题讨论】:

  • 为什么要这样做?为什么不从原始文件创建一个库并使用.lib 作为输入。此外,肯定 .obj 文件不在解决方案目录中 - 将有一个调试版本和一个发布版本。如果你想升级到更新的编译器,你不能使用以前生成的 obj 文件。这太疯狂了。
  • 我试图创建一个库,但我收到了类似的错误消息。所以一开始我会试试这个。我正在尝试将主应用程序作为调试版本,因此 $(SolutionDir) 可能是相同的。我试图将真实路径(不使用宏)添加到库目录,但错误消息是相同的。
  • doctorlove:请不要用更多的问题来回答问题。回答问题,或者不回答。不要改变问题。

标签: visual-c++


【解决方案1】:

一种(相对)干净的方式来做您似乎想要做的事情是在同一个解决方案中创建一个库,并将其添加为将使用它的项目的引用。

右键单击项目,选择“引用”,然后选择“添加新引用”,然后在您的解决方案中选择库项目。

如果您真的想尝试使用链接器属性,请注意有一个“附加库目录”设置 - 这需要是您尝试导入的项目的 OutputDir - 并且不同于“ Additional dependencies" 库名(只是没有路径的库名)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2015-01-28
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多