gpt4 book ai didi

c++ - Qt 对 boost::system::generic_category() 的 undefined reference

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:48:30 25 4
gpt4 key购买 nike

目前正在尝试在 Qt 应用程序中使用 boost 线程(我知道 Qt 有自己的线程函数,但在这里我使用的是 boost)但是无论我做什么我都会遇到链接器错误。网上有很多关于这个问题的问题,但到目前为止我还没有能够解决它。我知道我的 boost 东西工作正常,因为我可以在 code::blocks 应用程序中使用所有 header ,但我只是链接到 boost/stage/libs 文件夹中的每个文件。

最简单的错误示例就是在文件中包含 boost/thread.hpp header

#include "MainWindow.h"
#include <QApplication>

#include <boost/thread.hpp>

int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.show();

return a.exec();
}

这给了我以下错误。

C:\boost_1_53_0\boost\system\error_code.hpp:214: error: undefined reference to                `boost::system::generic_category()'

这是我的 .pro 文件,显示了我如何链接到 boost 库。

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = BoostTest
TEMPLATE = app

INCLUDEPATH += C:/boost_1_53_0/
LIB += -LC:/boost_1_53_0/stage/lib/ \
-lboost_system-mgw47-1_53 \
-lboost_filesystem-mgw47-mt-1_53 \
-lboost_thread-mgw47-mt-1_53

SOURCES += main.cpp\
MainWindow.cpp

HEADERS += MainWindow.h

FORMS += MainWindow.ui

我已经尝试了对库进行排序的所有排列,所以我知道问题不是它们的链接顺序。我想知道,首先,上述链接的语法是否正确,其次。如果我实际上包含了正确的文件。我也试过链接

-lboost_system \
-lboost_filesystem \
-lboost_thread

但我的 stage/libs/文件夹包含大量不同版本的上述内容,所以我不确定链接了哪些。附件是一张只显示我拥有的 boost_system 文件的图片。应该链接哪些?

enter image description here

谢谢。

最佳答案

你好像打错了:

LIB += -LC:/boost_1_53_0/stage/lib/ \

这应该是(注意变量末尾的复数形式):

LIBS += -LC:/boost_1_53_0/stage/lib/ \

...是的,您应该使用此公式而不是您最初编写的长版本:

-lboost_system \
-lboost_filesystem \
-lboost_thread

关于c++ - Qt 对 boost::system::generic_category() 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19200911/

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