来自Boost的链接器错误:无法找到要链接的库

时间:2013-10-22 11:18:38

标签: c++ qt boost linker mingw

我有与Boost相关的链接器错误:

error: cannot find -lboost_program_options-mgw44-mt-1_54
error: collect2: ld returned 1 exit status

这是与Boost相关的Qt pro文件的一部分:

BOOST_VERS = 1_54
COMPILER = mgw44

INCLUDEPATH += $$BOOST_ROOT/boost
QMAKE_LIBDIR += $$BOOST_ROOT/stage/lib

LIBS += -lboost_program_options-$$COMPILER-mt-$$BOOST_VERS
LIBS += -lboost_thread-$$COMPILER-mt-$$BOOST_VERS
LIBS += -lboost_system-$$COMPILER-mt-$$BOOST_VERS

BOOST_ROOT是一个环境变量,设置为C:\ Boost_1_54_0。

由于Boost似乎安装正确(库在那里),我做错了什么?

系统:
- Windows 7
- MinGW 4.4
- 提升1.54.0
- qmake / Qt Creator

2 个答案:

答案 0 :(得分:1)

  

QMAKE_LIBDIR

     

此变量包含所有已知库目录的位置。   此变量的值通常由qmake或qmake.conf处理   很少需要修改。

请尝试这样做:

win32-g++* {
  LIBS           += $${BOOST_ROOT}/stage/lib/libboost_system-$${COMPILER}-mt-$${BOOST_VERS}.a
  PRE_TARGETDEPS += $${BOOST_ROOT}/stage/lib/libboost_system-$${COMPILER}-mt-$${BOOST_VERS}.a
}

linux-g++* {
  LIBS           += -L$${BOOST_ROOT}/stage/lib  -lboost_system-$${COMPILER}-mt-$${BOOST_VERS}
  PRE_TARGETDEPS +=   $${BOOST_ROOT}/stage/lib/libboost_system-$${COMPILER}-mt-$${BOOST_VERS}.a
}

答案 1 :(得分:0)

BOOST_ROOT是一个环境变量,必须像这样使用:

$$(BOOST_ROOT)

BOOST_VERS必须用作:

$${BOOST_VERS}