c++ - 来自 Boost : cannot find the libraries to link with 的链接器错误

标签 c++ qt boost linker mingw

我有这个与 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

最佳答案

QMAKE_LIBDIR

This variable contains the location of all known library directories. The value of this variable is typically handled by qmake or qmake.conf and rarely needs to be modified.

请尝试这样做:

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
}

关于c++ - 来自 Boost : cannot find the libraries to link with 的链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19516399/

相关文章:

c++ - 添加到 QList 的 C++ 类的范围是什么

c++ - boost::async - 不确定实现

c++ - 程序已触发断点,0x77239D11 (ntdll.dll) : 0xC0000374: A heap has been corrupted (parameters: 0x7726D8D0) 处未处理的异常

c++ - C++03 是 C++ 标准的新版本还是只是 C++98 的技术勘误 (TC)?

c++ - Qt/C++ 如何迭代给定类对象的 QMetaObject 属性/数据类型?

c++ - 如何使用 Boost 创建临界区?

c++ - 设置 Boost 正则表达式语言环境?

c++ - 调整QPixmap Canvas 的大小

c++ - 应该在 C++ 源代码中修改什么以生成显示函数名称和运算符的控制流图?

c++ - 寻找QT函数将qint64类型的变量(整数)四舍五入到最接近的十