在Mac上的Qt:Boost文件系统库-找不到架构x86_64的符号

akashrajkn

我正在尝试运行一个依赖boost文件系统库的Qt项目。

Qt version: 5.6
Mac OSX 10.12
Xcode version: 8.0
Boost: 1.54

当我尝试构建项目时,出现以下错误,

"typeinfo for std::codecvt<wchar_t, char, __mbstate_t>", referenced from:
      typeinfo for boost::filesystem::detail::utf8_codecvt_facet in libboost_filesystem-mt.a(utf8_codecvt_facet.o)

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我看了看堆栈溢出(多线程123),但他们都不来解决我的问题。

我的.pro文件具有以下语句

macx:INCLUDEPATH += ../../boost_1_54_0
macx:LIBPATH += ../../boost_1_54_0
macx:LIBS += -lboost_filesystem-mt -lboost_system-mt -larchive -lz

[我在构建目录中有boost-filesystem,boost-system,lib存档,libz的静态文件]

我该如何解决这个问题?

佩泰什

听起来您正在混合使用libc++和进行构建libstdc++猜测你需要编译你的产品与标志-stdlib=stdc++

尽管我建议更改整个编译路径以仅使用默认的stdlib(libc++),但要避免这种情况

libstdc++ 具有以下内容:

$ nm /usr/lib/libstdc++.6.0.9.dylib | c++filt | grep 'std::codecvt<wchar_t, char, __mbstate_t>' | grep typeinfo
0000000000051710 S typeinfo for std::codecvt<wchar_t, char, __mbstate_t>
000000000004b760 S typeinfo name for std::codecvt<wchar_t, char, __mbstate_t>

libc++具有以下内容:

$ nm /usr/lib/libc++.dylib | c++filt | grep '::codecvt<wchar_t' | grep typeinfo
0000000000057ff0 S typeinfo for std::__1::codecvt<wchar_t, char, __mbstate_t>
0000000000052070 S typeinfo name for std::__1::codecvt<wchar_t, char, __mbstate_t>

请注意,这种干预::__1::旨在防止libc++libstdc++交互静默破坏您的应用程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ld:找不到架构x86_64 qt的符号

Mac OS X的静态库链接问题:找不到架构x86_64的符号

无法在macOS上使用GSL库-ld:找不到架构x86_64的符号

Qt Creator 项目中断:“找不到架构 x86_64 的符号”

找不到针对架构x86_64的带有QWebKit符号的Qt项目

找不到架构x86_64 mac os 10.13.3的符号

在OSx上使用CMake构建C ++项目:ld:找不到架构x86_64的符号

ld:在OSX 10.9上找不到架构x86_64的符号

找不到架构x86_64的-lswiftCoreFoundation库

Xcode“ ld:找不到架构x86_64的库”

在macOS上找不到针对架构x86_64的libfuzzer

Mac上的架构x86_64 C ++的未定义符号

架构x86_64的未定义符号:OS X,Boost Log,CMake

Boost.MPI 为架构 x86_64 提供未定义符号

Boost C ++的架构x86_64的未定义符号

如何修复架构x86_64,Boost Asio 1.58的未定义符号

编译和链接多个 C 库(卡在未找到架构 x86_64 的符号处)

Xcode 6.3上架构x86_64的未定义符号

使用多个文件时出现“架构 x86_64 的未定义符号”错误

使用 QEMU 在 x86_64 Ubuntu 上模拟 AARCH64 二进制调用 libgps 会出现“错误重定位:找不到符号”错误

带有boost的另一个“ ld:找不到针对体系结构x86_64的符号”问题,这次是mgiza

OSX clang ++:用于cpp文件中显式实例化的模板的架构x86_64的未定义符号

链接器错误:ld:找不到架构 x86_64 的符号

访问静态成员函数给出:ld:找不到架构 x86_64 的符号

OSX CGGetActiveDisplayList -> ld:找不到 x86_64 架构的符号

ld:找不到架构x86_64的符号,clang:链接器命令失败

找不到架构x86_64的未定义符号&& symbol(s)

Linphone ld:找不到架构x86_64的符号-Xcode 10

尝试portaudio示例,但得到“ ld:架构x86_64找不到符号”