qt 5.4/clang:未定义的符号为架构x86_64 (std::istream::gcount())
qt 5.4/clang: Undefined symbols for architecture x86_64 (std::istream::gcount())
我试图包括一个内部库到我的应用程序,但我得到以下链接错误。图书馆找到了。该库使用与应用程序完全相同的标志进行编译。这在windows上工作得很好,但在osx上就麻烦了。对我来说,它看起来像找不到图书馆?
我还添加了以下标志到qmake,但没有帮助:
CONFIG += c++11
LIBS += -stdlib=libc++
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_CXXFLAGS += -std=c++11
错误信息:
目标:x86_64-apple-darwin14.4.0线程模型:posix"/应用程序/xcode/内容/开发/工具链/XcodeDefault.xctoolchain/usr/bin/ld"-demangle -dynamic -arch x86_64 -headerpad_max_install_names -macosx_version_min 10.7.0应用程序/内容/MacOS/CryptoTest -lcrt1.10.6。0 -L/Users/eDS/dev/ed/CryptoTest -syslibroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/sdk/MacOSX10.10.sdk-rpath/Users/eDS/Qt/5.4/clang_64/lib obj/main。o obj/主窗口。o obj/moc_mainwindow。0 -lc++ -lcryptopp -llicensing -framework QtSvg . 0-framework QtWidgets -framework QtGui -framework QtCore -framework diskarration -framework IOKit -framework QtQuickWidgets -frameworkQtQuick -framework QtQml -framework QtNetwork -frameworkQtPrintSupport -framework QtWebKitWidgets -framework QtWebKit-lc++ -lSystem/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.1.0/lib/darwin/libclang_rt.osx.a- f/用户/eDS/Qt/5.4/clang_64/lib
架构x86_64:
未定义符号"std::istream::gcount() const",引用自:CryptoPP::operator>>(std::istream&, CryptoPP::Integer&) inlibcryptopp.a (integer.o)"std::string::data() const",被引用来自:Licensing::RsaVerifySignature(std::string, std::string) in liblicensing.a(Licensing .o)
似乎clang仍然有一些问题与c++ 11,看看这个线程,它是旧的,但我认为仍然是实际的:
https://forum.qt.io/topic/23989/solved-make-qtcreator-qmake-and-clang3-2-work-with-c-11/27你应该在pro文件中使用这样的内容:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
LIBS += -stdlib=libc++
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_CXXFLAGS += -std=c++11
QMAKE_CXXFLAGS += -mmacosx-version-min=10.7
QMAKE_LFLAGS += -mmacosx-version-min=10.7
事实证明该库不是用c+11标志编译的。添加以下内容后,一切正常
LIBS += -stdlib=libc++
CONFIG += c++11
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_CXXFLAGS += -std=c++11
- 使用std::multimap迭代器创建std::list
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从持续时间构造std::chrono::system_clock::time_point
- std::具有相同基类的类的变体
- std::向量与传递值的动态数组
- 使用std::vector的OpenCL矩阵乘法
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- std::condition_variable::wait()如何评估给定的谓词
- 如何获取std::result_of函数的返回类型
- std::原子加载和存储都需要吗
- 在 x86 上实现 std::atomic_thread_fence(std::memory_order_seq_cst
- std::x86 上需要memory_order_acquire围栏吗?
- std::atomic::fetch_add是x86-64上的串行化操作
- Return value of std::hash ofr (x86/x64)
- “std::memory_order_aquire”的语义是否需要x86/x8_64上的处理器指令
- solaris (x86)上关于std::basic_string的一些困惑
- std::ifstream无法打开c:program files(x86)下的文件