我有与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
答案 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}