2015-07-20 66 views
1

我想包括一個內部庫到我的應用程序,但我得到以下鏈接錯誤。圖書館被找到。該庫與應用程序完全相同的標誌進行編譯。這在Windows上工作正常,但給OSX的麻煩。對我來說,它看起來像無法找到STL庫?qt 5.4 /鏗鏘:架構x86_64(std :: istream :: gcount())未定義的符號

我還增加了以下標誌qmake的,但是沒有幫助:

CONFIG += c++11 
LIBS += -stdlib=libc++ 

QMAKE_CXXFLAGS += -stdlib=libc++ 
QMAKE_CXXFLAGS += -std=c++11 

錯誤消息:

目標:x86_64的 - 蘋果darwin14.4.0 線程模型:POSIX 「/ Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld「 -demangle -dynamic -arch x86_64 -headerpad_max_install_names -macosx_version_min 10.7.0 -o CryptoTest.app/Contents/MacOS/CryptoTest -lcrt1 .10.6.o -L/Users/eDS/dev/ed/Crypt oTest -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -rpath /Users/eDS/Qt/5.4/clang_64/lib obj/main.o obj /mainwindow.o OBJ/moc_mainwindow.o -lC++ -lcryptopp -llicensing -framework QtSvg -framework QtWidgets -framework QtGui -framework QtCore -framework DiskArbitration -framework由於IOKit -framework QtQuickWidgets -framework QtQuick -framework QtQml -framework QtNetwork -framework QtPrintSupport框架QtWebKitWidgets框架QtWebKit 框架Qt3D框架QtOpenGL框架QtXml框架QtSql框架OpenGL框架AGL -lC++ -lSystem//../lib/clang/6.1.0/lib/darwin/libclang_rt.osx.a -F/Users/eDS/Qt/5.4/clang_64/lib
倍 爲架構x86_64的未定義的符號:
「的std :: istream的:: gcount的()const的」,從引用:

CryptoPP ::運算>>(標準:: istream的&,CryptoPP ::整數&)在 libcryptopp.a(integer.o)「std :: string :: data()const」,引用爲 from: liblicensing.a中的Licensing :: RsaVerifySignature(std :: string,std :: string)(licensing.o )

回答

1

看來,鏗鏘仍然有一些與C + + 11的問題,看到這個線程,它是舊的,但我認爲仍然是實際的:

https://forum.qt.io/topic/23989/solved-make-qtcreator-qmake-and-clang3-2-work-with-c-11/27

你應該使用類似的東西在親文件:

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 

這將是一個鏗鏘的解決方法。

1

事實證明,該庫不是用c + 11標誌編譯的。加入以下一切後,一切正常

LIBS += -stdlib=libc++ 
CONFIG += c++11 
QMAKE_CXXFLAGS += -stdlib=libc++ 
QMAKE_CXXFLAGS += -std=c++11 
相關問題