首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt Creator的Boost

Qt Creator的Boost
EN

Stack Overflow用户
提问于 2020-06-13 11:51:13
回答 1查看 2.6K关注 0票数 4

我试图在用C++制作的QtCreator项目中使用boost/filesystem。问题是,在构建时,我得到了以下错误:

代码语言:javascript
复制
"error: undefined reference to `boost::system::generic_category()'"

要使用boost,我执行了以下操作:

  • 下载boost库boost_1_73_0.7z文件
  • 在我的计算机中解压缩它(在D:\Development\Boost下面)
  • 在.pro文件中,我添加了以下选项 += D:/Development/Boost
  • 在我的.cpp文件中,我添加了以下内容 #包括“boost/fileystem.hpp”
  • 此时,在编译时,Qt创建者IDE中出现了以下错误 “错误:对`boost::system::generic_category()‘的未定义引用”

根本原因是:需要构建FileSystem。因此,我通过以下方法构建了这个boost库:

  • 在路径变量中添加gcc和g++ (这是成功的,因为我可以从命令提示符中调用'g++‘和'gcc’)。
  • 打开Qt命令提示符(我使用了QT5.15.0 (MinGW 73.0,64位)),并导航到安装boost的存储库。

  • 在目录(D:\Development\Boost)的命令提示符中执行以下命令:引导gcc

  • 在我解压缩Boost的目录中的命令提示符中执行以下命令:b2 toolset=gcc link=shared threading=multi --build=CompleteState。此操作创建了一个包含所有dll的目录D:\develoment\Boost\Stage\lib,包括‘libboost_ with系统-mgw8-mt-d-x64-1_73.dll’。
  • 现在是时候将Qt创建者中的库链接起来了。因此,我在我的.pro文件中添加了以下内容: LIBS += -LD:/Development/Boost/stage/lib libboost_LIBS系统-mgw8-mt-d-x64-1_73

编译时,错误将消失。

谢谢你的帮助。加廷

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-14 08:28:51

正如@drescherjm所评论的那样,您需要构建boost库。

它们是,而不是D:/Development/Boost/libs目录中的

您似乎在使用Windows,并在您的"D:“驱动器上安装了boost

我假设您使用的是MinGw编译器,它是Qt Creator附带的,而不是Visual。

要用boost构建MinGw,首先打开相关的Qt命令提示符,例如Qt 5.12.3 (MinGW 7.3.0 64-bit)并键入以下内容:

代码语言:javascript
复制
D:
cd \Development\Boost
bootstrap.bat gcc
b2 toolset=gcc link=shared threading=multi --build-type=complete stage

这将在您的目录: MinGw boost库中构建D:\Development\Boost\stage\lib

然后将链接命令更改为:

代码语言:javascript
复制
LIBS += -LD:/Development/Boost/stage/lib -l boost_system-mgw73-mt-x64-d-1_66

注意:boost_system库的确切名称取决于boost在您的版本中如何命名它。

请参见启动Windows入门:库命名。,这里的答案是:文件系统和您在D:\Development\Boost\stage\lib目录中构建的文件名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62359347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档