gpt4 book ai didi

c++ - Windows 上 QT Creator 中未定义的对 boost 库的引用

转载 作者:可可西里 更新时间:2023-11-01 10:43:29 25 4
gpt4 key购买 nike

我正在尝试在 Windows 上运行我在 Linux Ubuntu 上开发的 QT 项目。不幸的是,我无法管理它以正确链接 boost 库。下面是问题的详细描述。

我从 https://nuwen.net/mingw.html 下载了 MinGW ,版本 13.5,这样 gcc 版本 5.3.0 与 QT 的 MinGW 版本相匹配。选择这个版本的 MinGW 的原因是它包含用于压缩的 boost 库,例如 zlib。从命令行我编译并运行我的程序没有任何问题:

g++ -std=c++11 -w -IC:/MinGW/include -LC:/MinGW/lib bAya.cpp A.o B.o C.o -o baya -lboost_iostreams -lz -lbz2

其中 A、B、C 是我预编译的目标文件。

在 QT Creator 中,我选择了 MinGW 编译器 (C:\MinGW_53\MinGW\bin\g++.exe) 并使用编译器创建了一个新的默认工具包。

我的 .pro 文件如下所示:

MAKE_CXXFLAGS += -std=c++11

INCLUDEPATH += C:/MinGW_53/MinGW/include \
C:/Users/kuzk/Documents/src

LIBS += -LC:/MinGW_53/MinGW/lib/mylib \
-lboost_system \
-lboost_iostreams \
-lz \
-lbz2

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

SOURCES += main.cpp\
mainwindow.cpp \
../src/A.cpp \
../src/B.cpp \
../src/C.cpp

HEADERS += mainwindow.h \
../src/A.h \
../src/B.h \
../src/C.h

文件夹 C:/MinGW_53/MinGW/lib/mylib 包含我的 .a 文件,例如 libboost_iostreams.a

当我构建它时,我得到许多 undefined reference 错误,例如
错误:对 `boost::iostreams::zlib::default_strategy' 的 undefined reference

有趣的是,如果 C:/MinGW_53/MinGW/lib/mylib 也包含 libstdc++.a,我也会收到与 std::cout、std::ifstream 等的链接错误。

我目前被卡住了,我会非常乐于提供任何反馈。

最好的,康斯坦丁

最佳答案

boost_iostreams 添加库路径:

-LC:/MinGW/lib \

行后:

LIBS += -LC:/MinGW_53/MinGW/lib/mylib \

应该修复它。

关于c++ - Windows 上 QT Creator 中未定义的对 boost 库的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610780/

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