无法使用mingw32-g ++链接提升

时间:2013-06-10 19:20:34

标签: c++ boost compilation mingw linker-errors

我正在尝试使用boost :: asio工作。

我用命令

构建了boost
bjam 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

2 个答案:

答案 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