代码之家  ›  专栏  ›  技术社区  ›  jjmcc

如何在Visual Studio 2017中为跨平台Linux项目链接Linux库?

  •  0
  • jjmcc  · 技术社区  · 7 年前

    我在Windows上,使用Visual Studio 2017社区中的跨平台Linux项目构建。我正在尝试构建我的项目,但由于某些原因,库未被检测到或使用不正确。

    1>Linking objects
    1>/home/ubuntu/projects/LinuxApplication/obj/x64/Debug/main.o: In function `__static_initialization_and_destruction_0(int, int)':
    1>/usr/include/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'
    1>/usr/include/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
    1>/usr/include/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'
    1>/home/ubuntu/projects/LinuxApplication/obj/x64/Debug/main.o: In function `boost::system::error_code::error_code()':
    1>/usr/include/boost/system/error_code.hpp:322: undefined reference to `boost::system::system_category()'
    1>/home/ubuntu/projects/LinuxApplication/obj/x64/Debug/main.o: In function `boost::asio::error::get_system_category()':
    1>/usr/include/boost/asio/error.hpp:230: undefined reference to `boost::system::system_category()'
    1>collect2: error: ld returned 1 exit status
    1>C:\Users\user\source\repos\LinuxApplication\obj\x64\Debug\main.o : error :
    1>/usr/include/boost/system/error_code.hpp:221: undefined reference to `boost::system : error : generic_category()'
    1>/usr/include/boost/system/error_code.hpp:222: undefined reference to `boost::system : error : generic_category()'
    1>/usr/include/boost/system/error_code.hpp:223: undefined reference to `boost::system : error : system_category()'
    1>C:\Users\user\source\repos\LinuxApplication\obj\x64\Debug\main.o: In function `boost::system::error_code: : error :
    1>/usr/include/boost/system/error_code.hpp:322: undefined reference to `boost::system : error : system_category()'
    1>C:\Users\user\source\repos\LinuxApplication\obj\x64\Debug\main.o: In function `boost::asio::error: : error :
    1>/usr/include/boost/asio/error.hpp:230: undefined reference to `boost::system : error : system_category()'
    1>collect2 : error : ld returned 1 exit status
    1>Done building project "LinuxApplication.vcxproj" -- FAILED.
    

    libboost_system 找不到,但它肯定存在于 /usr/lib/libboost_system.a 但是由于某些原因,构建没有引用这个。我已尝试将库添加到Visual Studio中的链接器,但它似乎仍然不起作用。

    如果我使用 g++ main.cpp -o main -lboost_system 应用程序生成正确,但这意味着我无法调试该应用程序,因此我希望让它为远程生成工作。

    1 回复  |  直到 7 年前
        1
  •  1
  •   jjmcc    7 年前

    从Visual Studio看来,您需要指定库到链接器的完整路径。所以为了我的案子我不得不补充

    /usr/lib/libboost_system.a

    推荐文章