gpt4 book ai didi

c++ - 用Qt Creator boost

转载 作者:行者123 更新时间:2023-12-01 14:52:24 24 4
gpt4 key购买 nike

我试图在用QtCreator创建的C++项目中使用boost / filesystem。
问题是在构建时出现以下错误:

"error: undefined reference to `boost::system::generic_category()'"

为了使用boost,我执行了以下操作:
  • 下载boost库boost_1_73_0.7z文件
  • 将其解压缩到我的计算机中(在D:\ Development \ Boost下)
  • .pro文件中的
  • ,我添加了以下选项

    INCLUDEPATH + = D:/ Development / Boost
  • 我的.cpp文件中的
  • ,我添加了以下内容

    #include“boost / filesystem.hpp”
  • 此时,在编译时,我在Qt Creator IDE中遇到以下错误

    “错误:对`boost::system::generic_category()'的 undefined reference ”

  • 根本原因如下:需要构建FileSystem。因此,我通过以下方式构建了这个Boost库:
  • 将gcc和g++添加到路径变量(它可以成功执行,因为我可以在命令提示符下调用“g++”和“gcc”)。
  • 打开Qt命令提示符(我使用Qt 5.15.0(MinGW 73.0 64位)),然后导航到安装了boost的存储库。

  • enter image description here
  • 在目录(D:\ Development \ Boost)的命令提示符中执行以下命令: bootstrap gcc

  • enter image description here
  • 在我解压缩Boost的目录中的命令提示符中执行以下命令: b2 toolset = gcc link = shared threading = multi --build-type = complete stage 。此操作已创建目录 D:\ develoment \ Boost \ Stage \ lib ,其中包含所有dll,包括“libboost_filesystem-mgw8-mt-d-x64-1_73.dll”。
  • 现在是时候在Qt Creator中链接库了。因此,我在.pro文件中添加了以下内容:

    LIBS + = -LD:/开发/升级/阶段/ lib libboost_filesystem-mgw8-mt-d-x64-1_73

  • 编译时,错误消失了。

    谢谢你的帮助。
    加蒂安

    最佳答案

    正如@drescherjm所评论的那样,您需要构建boost库。
    D:/Development/Boost/libs目录中,它们是而不是

    您似乎正在使用Windows,并且在“D:”驱动器上安装了boost
    我假设您使用的是MinGw附带的Qt Creator编译器,而不是Visual Studio。

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

    D:
    cd \Development\Boost
    bootstrap.bat gcc
    b2 toolset=gcc link=shared threading=multi --build-type=complete stage

    这将在您的目录 boost中构建MinGw D:\Development\Boost\stage\lib库。
    然后将链接命令更改为:
    LIBS += -LD:/Development/Boost/stage/lib -l boost_system-mgw73-mt-x64-d-1_66

    注意: boost_system库的确切名称取决于 boost在您的版本中的命名方式。
    请在此处查看 Boost Getting Started on Windows: library naming.的答案: mingw-w64 cannot find -lboost_filesystem以及您在 D:\Development\Boost\stage\lib目录中构建的文件名。

    关于c++ - 用Qt Creator boost ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62359347/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com