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的主要内容,如果未能解决你的问题,请参考以下文章