【问题标题】:How to solve fatal error LNK1181 when compiling编译时如何解决致命错误LNK1181
【发布时间】:2018-09-06 19:51:48
【问题描述】:

我正在尝试使用 Visual Studio 2015 v14 x64 在 Windows 上构建 ORBSLAM2。 ORBSLAM2 的这个特定分支依赖于 C/C++ Boost 库。

到目前为止,我已经执行了以下步骤:

A.) 我下载并构建了 Boost 库,如 here 所述:

$ bootstrap.bat
$ b2 link=static runtime-link=static release stage
$ bjam install --toolset=msvc variant=release link=static threading=multi runtime-link=static

B.) 然后我为项目配置了以下属性:

项目属性 -> C/C++ -> 常规 -> 附加包含目录

D:\ORB_SLAM2\Thirdparty\boost_1_64_0\

项目属性->链接器->输入->附加依赖

D:\ORB_SLAM2\Thirdparty\boost_1_64_0\stage\lib\

我在构建时收到以下链接器错误:

1>------ Rebuild All started: Project: ZERO_CHECK, Configuration: Release x64 ------
1>  Checking Build System
1>  CMake does not need to re-run because D:/ORB_SLAM2/build/CMakeFiles/generate.stamp is up-to-date.
2>------ Rebuild All started: Project: ORB_SLAM2, Configuration: Release x64 ------
2>  Building Custom Rule D:/ORB_SLAM2/CMakeLists.txt
2>  CMake does not need to re-run because D:/ORB_SLAM2/build/CMakeFiles/generate.stamp is up-to-date.
2>  System.cc
2>  Tracking.cc
2>  LocalMapping.cc
2>  LoopClosing.cc
2>  ORBextractor.cc
...
...
...
2>  Viewer.cc
2>  Generating Code...
2>  ORB_SLAM2.vcxproj -> D:\ORB_SLAM2\build\Release\ORB_SLAM2.lib
3>------ Rebuild All started: Project: mono_euroc, Configuration: Release x64 ------
3>  mono_euroc.cc
3>LINK : fatal error LNK1181: cannot open input file 'D:\ORB_SLAM2\Thirdparty\boost_1_64_0\stage\lib\.obj'
========== Rebuild All: 2 succeeded, 1 failed, 0 skipped ==========

奇怪的是,链接器只寻找.obj,没有涉及文件名。知道问题出在哪里吗?

【问题讨论】:

    标签: visual-studio boost visual-studio-2015


    【解决方案1】:

    我通过在 Visual Studio 2015 IDE 中使用 NuGet Packet Manager 安装 Boost 库解决了这个问题。

    1. 右键解决方案->Manage NuGet Packages for Solution
    2. 浏览“boost”并选择boost-vc140(作者:Sergey Shandar)
    3. 在右侧,选择所需的版本并选中您想要链接Boost 的项目
    4. 点击“安装” -> 确定 -> 等待,耐心等待...
    5. 右键单击您的项目 -> 配置属性 -> C/C++ -> 常规 -> 附加包含目录: 添加“C:\<path-to-your-project>\build\packages\boost.1.64.0.0\lib\native\include
    6. 右键单击您的项目 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项: 添加“C:\<path-to-your-project>\build\packages\boost_serialization-vc140.1.64.0.0\lib\native\address-model-64\lib\libboost_serialization-vc140-mt-s-1_64.lib

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      相关资源
      最近更新 更多