0

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

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

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

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
- Boost 1.54.0
- qmake / Qt Creator

4

2 回答 2

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
}
于 2013-10-22T12:24:58.330 回答
0

作为 BOOST_ROOT 环境变量,它必须像这样使用:

$$(BOOST_ROOT)

并且 BOOST_VERS 必须用作:

$${BOOST_VERS}
于 2013-10-22T13:25:20.370 回答