我正在尝试使用boost :: asio工作。
我用命令
构建了boostbjam toolset=gcc --build-type=complete --with-system --with-thre
ad --with-date_time --with-regex --with-serialization stage
我的libboost_system
文件名为libboost_system-mgw47-1_53.dll
。所以我尝试用命令编译一个示例program(尝试使用斜杠和反斜杠)
mingw32-g++ -ID:/boost_1_53_0 -LD:/boost_1_53_0/bin.v2/libs
main.cpp -libboost_system-mgw47-1_53
但我继续收到错误
ld.exe: cannot find -libboost_system-mgw47-1_53
库文件存在:D:\boost_1_53_0\bin.v2\libs\system\build\gcc-mingw-4.7.2\release\libboost_system-mgw47-1_53.dll
。我做错了什么?我告诉编译器在哪里查找二进制文件。为什么不能找到它们?
P.S。建立在x64 Win7上的mingw 4.7
答案 0 :(得分:1)
您需要使用:
mingw32-g++ -ID:/boost_1_53_0 -LD:/boost_1_53_0/stage/lib main.cpp -lboost_system-mgw47-1_53
答案 1 :(得分:1)
链接器找不到库文件,因为-L
选项不搜索子目录中的文件。
其中一种可能的解决方案是指定库目录-LD:\boost_1_53_0\bin.v2\libs\system\build\gcc-mingw-4.7.2\release
的完整路径。
另一个 - 指定库文件本身D:\boost_1_53_0\bin.v2\libs\system\build\gcc-mingw-4.7.2\release\libboost_system-mgw47-1_53.dll
的完整路径。在这种情况下,不需要-libboost_system-mgw47-1_53
。
最正确的一个是@cv_and_he