我遇到了很多链接器错误。我确保通过macports安装我需要的所有库。我整理了所有包含错误,但现在我还有很多链接器错误。
HEADER_SEARCH_PATHS = / opt / local / include / usr / include / opt / local / include / json LIBRARY_SEARCH_PATHS = / opt / local / lib / usr / local / lib
Build target PianoLounge
Ld /Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug/PianoLounge.app/Contents/MacOS/PianoLounge normal x86_64
cd /Users/jordan/Projects/Cocoa/PianoLounge
setenv MACOSX_DEPLOYMENT_TARGET 10.8
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug -L/opt/local/lib -L/usr/local/lib -F/Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug -filelist /Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Intermediates/PianoLounge.build/Debug/PianoLounge.build/Objects-normal/x86_64/PianoLounge.LinkFileList -mmacosx-version-min=10.8 -fobjc-arc -fobjc-link-runtime -framework Cocoa -o /Users/jordan/Library/Developer/Xcode/DerivedData/PianoLounge-ajgojrzszrergafgvyuliphwxcpg/Build/Products/Debug/PianoLounge.app/Contents/MacOS/PianoLounge
Undefined symbols for architecture x86_64:
"_gcry_cipher_close", referenced from:
_PianoDestroyPartner in piano.o
"_gcry_cipher_decrypt", referenced from:
_PianoDecryptString in crypt.o
"_gcry_cipher_encrypt", referenced from:
_PianoEncryptString in crypt.o
"_gcry_cipher_open", referenced from:
_PianoInit in piano.o
"_gcry_cipher_setkey", referenced from:
_PianoInit in piano.o
"_gnutls_bye", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_certificate_allocate_credentials", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_certificate_free_credentials", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_certificate_get_peers", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_certificate_type_get", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_credentials_set", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_deinit", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_handshake", referenced from:
_WaitressConnect in waitress.o
"_gnutls_init", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_record_recv", referenced from:
_WaitressGnutlsRead in waitress.o
"_gnutls_record_send", referenced from:
_WaitressGnutlsWrite in waitress.o
"_gnutls_set_default_priority", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_transport_set_ptr", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_transport_set_pull_function", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_transport_set_push_function", referenced from:
_WaitressFetchCall in waitress.o
"_gnutls_x509_crt_deinit", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_x509_crt_get_fingerprint", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_x509_crt_import", referenced from:
_WaitressTlsVerify in waitress.o
"_gnutls_x509_crt_init", referenced from:
_WaitressTlsVerify in waitress.o
"_json_object_array_add", referenced from:
_PianoRequest in request.o
"_json_object_array_get_idx", referenced from:
_PianoResponse in response.o
"_json_object_array_length", referenced from:
_PianoResponse in response.o
"_json_object_get_boolean", referenced from:
_PianoResponse in response.o
_PianoJsonParseStation in response.o
"_json_object_get_double", referenced from:
_PianoResponse in response.o
"_json_object_get_int", referenced from:
_PianoResponse in response.o
"_json_object_get_object", referenced from:
_PianoResponse in response.o
"_json_object_get_string", referenced from:
_PianoResponse in response.o
_PianoJsonStrdup in response.o
"_json_object_new_array", referenced from:
_PianoRequest in request.o
"_json_object_new_boolean", referenced from:
_PianoRequest in request.o
"_json_object_new_int", referenced from:
_PianoRequest in request.o
"_json_object_new_object", referenced from:
_PianoRequest in request.o
"_json_object_new_string", referenced from:
_PianoRequest in request.o
"_json_object_object_add", referenced from:
_PianoRequest in request.o
"_json_object_object_get", referenced from:
_PianoResponse in response.o
_PianoJsonStrdup in response.o
_PianoJsonParseStation in response.o
"_json_object_put", referenced from:
_PianoRequest in request.o
_PianoResponse in response.o
"_json_object_to_json_string", referenced from:
_PianoRequest in request.o
"_json_tokener_parse", referenced from:
_PianoResponse in response.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:2)
看起来你错过了所需的库gnutls,gcrypt和json来链接。除非你告诉Xcode要链接哪些库,否则不会有任何想法。它看起来像这样:
-lgnutls -lgcrypt -ljson
(这是一个例子,我不确定具体需要哪些库。)
您需要将这些作为额外的库添加到Xcode项目中进行链接。