【问题标题】:Boost on eclipse on windows在 Windows 上增强 Eclipse
【发布时间】:2015-04-24 10:13:42
【问题描述】:

我在 win 7 上使用 eclipse luna。
这是我的程序。

#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>

int main(int argc, char* argv[]){
    // All programs that use asio need to have at least one io_service object
    boost::asio::io_service io;
    // sets the timer to expire 5 seconds from now
    boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
    t.wait();

    std::cout << "Hello, world!\n";

    return 0;

}

这是我的命令行代码

g++ -I"C:\Users\Documents\Lib\boost_1_57_0\boost_1_57_0" -O0 -g3 -Wall -c -fmessage-length=0 -lboost_filesystem -lboost_system -lboost_libraryname -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
Invoking: Cross G++ Linker
g++  -o "002_TimerSynchronously"  ./main.o   

错误

C:/Users/SulfredLee/Documents/Lib/boost_1_57_0/boost_1_57_0/boost/system/error_code.hpp:221: undefined reference to `boost::system::generic_category()'
C:/Users/SulfredLee/Documents/Lib/boost_1_57_0/boost_1_57_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
C:/Users/SulfredLee/Documents/Lib/boost_1_57_0/boost_1_57_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::system_category()'

有人知道怎么解决吗?
非常感谢

参考:
undefined reference to boost::system::system_category() when compiling
How do I troubleshoot boost library/header inclusion via autoconf/automake?

【问题讨论】:

    标签: eclipse boost


    【解决方案1】:

    链接发生时,库应该出现在第二个命令行中。还请小心,并在目标文件之后列出库。

    【讨论】:

    • g++ -I"C:\Users\Documents\Lib\boost_1_57_0\boost_1_57_0" -O0 -g3 -Wall -c -fmessage-length=0 -lboost_filesystem -lboost_system -lboost_libraryname -MMD -MP - MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
      g++ -L"C:\Users\Documents\Lib\boost_1_57_0\boost_1_57_0" -o "002_TimerSynchronously" ./main.o
      这次我这样做了,但仍然出现错误。
    • g++ -o "002_TimerSynchronously" ./main.o -L"C:\Users\Documents\Lib\boost_1_57_0\boost_1_57_0" -lboost_filesystem -lboost_system
    • 现在的错误是:g++ -L"C:\Users\Documents\Lib\boost_1_57_0\boost_1_57_0" -lboost_filesystem -lboost_system -o "002_TimerSynchronously" ./main.oc:/mingw/bin/ ../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe:找不到-lboost_filesystem c:/mingw/bin/../lib/gcc /mingw32/4.8.1/../../../../mingw32/bin/ld.exe:找不到-lboost_system
    • 您的 boost 安装路径“C:\Users\SulfredLee\Documents\...”中是否可能缺少“SulfredLee”?在您的帖子中,它似乎是安装目录。
    猜你喜欢
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2011-04-25
    • 2013-06-02
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    相关资源
    最近更新 更多