- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
目前正在尝试在 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 文件的图片。应该链接哪些?
谢谢。
最佳答案
你好像打错了:
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/
引自 C++11 标准: 19.5.1.5 Error category objects [syserr.errcat.objects] const error_category& system_c
看来我看不到明显的东西。我想为我的项目使用一些 Boost 库功能,并且知道我突然遇到了这些好错误: Linking CXX executable ATFOR CMakeFiles/ATFOR.dir
我在这里缺少哪些链接器标志? 我尝试在 Ubuntu 18.04 LTS 上编译它但它失败了,它在 Debian 9 docker 镜像中运行: #include // Trying to comp
C++0x 有两个预定义的 error_category对象:generic_category()和 system_category() .据我目前所知,system_category()应该用于操作
如果我没有输入 -lboost_system,我会理解此错误消息。标志,但它真的在这里: g++ -o build/myproject build/main/main.o -L/usr/local/b
让我快速解决问题。我有一个依赖于 boost 的库“serial”,它是在 cmake 中设置的,我安装了一个 Findserial.cmake 来帮助我的第二个库“xbow_400”找到它。这一切都
我正在尝试将最新的 boost 库 (1.60) 链接到我的 Qt 项目。不幸的是,它总是显示“C++ Boost:对 boost::system::generic_category() 的 unde
我正在尝试包括 Boost我项目中的库,并且一直面临同样的问题。我在带有 Codeblocks IDE 的 Ubuntu 12.10 上,并尝试手动安装库,从站点读取说明,但在 header 和使用前
目前正在尝试在 Qt 应用程序中使用 boost 线程(我知道 Qt 有自己的线程函数,但在这里我使用的是 boost)但是无论我做什么我都会遇到链接器错误。网上有很多关于这个问题的问题,但到目前为止
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我正在尝试包含 Boost我项目中的库,并且一直面临同样的问题。我在带有 Codeblocks IDE 的 Ubuntu 12.10 上,并尝试手动安装库,从站点读取说明,但在 header 和使用前
我正在尝试在 CodeBlocks 中编译这段代码 #include #include using namespace boost::filesystem; int main() { if (
我想在我的项目中使用 boost.asio header ,但是当我包含它的 .hpp 文件时,我在编译时遇到了这个输出错误: 我需要 boost.asio 来让 crow 路由我的网络请求。 /ho
OK,所以我一直在关注this教程。 我按照提示进行了所有设置(仔细检查了所有内容),唯一更改的是(步骤10),从 ${OGRE_HOME}\boost_1_44 至 ${OGRE_HOME}\boo
我第一次尝试在 C++ 中使用 mongodb。我刚刚在 Ubuntu 上安装了最新版本,还安装了最新的 v2.0 c++ 驱动程序代码。它使用 scons 编译得很好。在 c++ 文件中,以下是我的
我是一名优秀的程序员,十分优秀!