2015-10-04 72 views
0

失敗我從標籤庫的具有以下的cmake(靶向約塞米蒂)的v1.9.1的源代碼創建了一個框架:爲OS X編譯的TagLib框架在協同設計

cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_FRAMEWORK=ON \ 
-DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/c++ \ 
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ \ 
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 -DCMAKE_OSX_ARCHITECTURES="x86_64"` 

我然後拖動和下降的tag.framework文件(文件夾)從/庫/框架/到我的Xcode 7.0項目,勾選「複製文件,如果需要」複選框,並檢查該文件確實存在於我的項目文件夾。然後,我將該框架添加到「嵌入式二進制文件」中,該框架自動將其添加到「鏈接的框架和庫」中。我檢查了框架出現在「鏈接二進制庫」和「嵌入框架」部分下的構建階段。

我可以鏈接到的頭文件與Xcode中(即#include <tag/mpegfile.h>)沒有錯誤,但是當我嘗試編譯,我得到一個錯誤:Command /usr/bin/codesign failed with exit code 1

編譯器提供了以下額外信息:/Users/username/Library/Developer/Xcode/DerivedData/MyApp-gsytetlenuelapbdgypechfnxbht/Build/Products/Debug/MyApp.app/Contents/Frameworks/tag.framework/Versions/A: No such file or directory

我去看了一下框架,確實版本里沒有「A」文件夾,但是是一個「1.14.0」文件夾。編譯器爲什麼要編碼一個不存在的版本?

謝謝!

回答

0

我編譯框架之前,通過在文件taglib/CMakeLists.txt的第344行(至少taglib-1.10beta,我決定在平均時間使用測試版)中更改一行來編譯我的xcode項目。 因此VERSION ${TAGLIB_SOVERSION_MAJOR}.${TAGLIB_SOVERSION_MINOR}.${TAGLIB_SOVERSION_PATCH}變成VERSION "A"

我完全不知道爲什麼Xcode去尋找版本「A」,但你去..