QT 和 Boost:找不到 -llibboost_filesystem

Posted

技术标签:

【中文标题】QT 和 Boost:找不到 -llibboost_filesystem【英文标题】:QT and Boost : Cannot find -llibboost_filesystem 【发布时间】:2015-04-23 07:00:25 【问题描述】:

我使用(我不能使用其他版本的 Qt):

QT Creator 2.4.1 和 QT 4.8.4(带有 Mingw 编译器) 提升 1.52

构建提升:

我首先将“C:/Qt/qtcreator-2.4.1/mingw/bin”添加到我的 PATH 变量中 然后打开命令提示符 转到“C:/boost_1_52” 键入“bootstrap.bat mingw” 然后是“b2 toolset=gcc build-type=complete stage”(这花了很长时间(大约 2 小时))

我想将 QT creator 与 boost 库一起使用,但遇到了困难。 我的项目很简单,只是基本的QT代码:

QCoreApplication a(argc, argv) 
return a.exec()

我刚刚添加了一些包含:

#include <boost/thread.hpp>
#include <boost/property_tree/json_parser.hpp> 
#include <boost/asio.hpp>
#include <boost/timer.hpp>

在我的 .pro 文件中我添加了:

DEFINES += BOOST_ALL_USE_LIB

INCLUDEPATH += C:/boost_1_52
LIBS += -LC:/boost_1_52/stage/lib \
-lboost_system-mgw48-mt-1_52 \
-lboost_thread-mgw48-mt-1-52 \
-lboost_timer-mgw48-mt-1_52

#"libboost_system..." needs this library
LIBS += -LC:/windows_sdk/lib \
-lWS2_32

当我构建我的项目时,我有两种“未定义的引用”:

其中有些带有“线程”,例如:

undefined reference to `boost::thread::thread()'
undefined reference to `boost::thread::joinable() const'

一些看起来像:

undefined reference to `boost::system::generic_category()'
undefined reference to `boost::system::system_category()'

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

试试这个。

LIBS += "-LC:/boost_1_57_0/libs/" \

【讨论】:

我忘了更新我的问题,但我解决了一些错误。最后,我不需要“libboost_filesyste ...”所以我删除了关于它的部分。 “libboost_system ...”需要来自 Windows SDK 的“WS2_32”,所以我将它链接起来,关于“WSAStartup”、“WSACleanup”的错误...消失了。我仍然有两种类型的未定义引用:-其中一些带有“线程”,例如“imp__ZN5boost6thread4joinEv”-一些看起来像“boost::system::generic_category()”我添加了“libbost_thread ...”库,但是没有帮助。我会更新我的问题【参考方案2】:

问题解决了!

几周前,我安装了 MinGW 4.8.1 附带的草莓珍珠 Qt Creator 自带的 MinGW 是 4.4.0

所以,在我的环境变量PATH 中,我有“C:\Strawberry\c\bin”和“C:\Qt\Qt creator\mingw\bin”

当我构建 boost 时,它肯定使用了它能找到的最新版本的 MinGW,也就是 Strawberry 附带的那个。

这就是导致我所有问题的原因,我使用 Qt 创建者的 MinGW 重建了 boost,一切正常!

我没有足够注意我图书馆名称中的“mg48”

【讨论】:

以上是关于QT 和 Boost:找不到 -llibboost_filesystem的主要内容,如果未能解决你的问题,请参考以下文章

错误“找不到 Boost”(缺少:上下文标头)

Boost Interprocess 找不到 boost/config/user.hpp

找不到 boost::serialization 的成员

CMake:找不到提升

CMake 找不到 boost_test

使用cygwin安装c++ boost:找不到配置文件