2014-06-05 57 views
1

我已編譯libclang.a i386和armv7。我可以使用i386 libclang.so構建我的ios應用程序,但由於".dylib not found" error而無法啓動。於是我決定創建脂肪用脂lib目錄下:架構i386的未定義符號 - Lipo錯誤?

lipo -create ../i386/libclang.a ../armv7/libclang.a -output ../fat/libclang.a

,並添加脂肪庫,而不是I386。

現在我越來越多的構建錯誤:

Undefined symbols for architecture i386: 
    "llvm::TimeRecord::getCurrentTime(bool)", referenced from: 
     clang::cxindex::Logger::~Logger() in libclang.a(CIndex.o) 
    "llvm::raw_ostream::flush_nonempty()", referenced from: 
     clang::cxindex::Logger::~Logger() in libclang.a(CIndex.o) 
    "llvm::raw_ostream::write(char const*, unsigned long)", referenced from: 
     _clang_createTranslationUnit in libclang.a(CIndex.o) 
     _clang_parseTranslationUnit in libclang.a(CIndex.o) 
     _clang_saveTranslationUnit in libclang.a(CIndex.o) 
     clang::cxindex::Logger::operator<<(CXTranslationUnitImpl*) in libclang.a(CIndex.o) 
     _clang_getCursorDisplayName in libclang.a(CIndex.o) 
     _clang_annotateTokens in libclang.a(CIndex.o) 
     clang::cxindex::Logger::operator<<(clang::FileEntry const*) in libclang.a(CIndex.o) 
     ... 
    "llvm::raw_ostream::write(unsigned char)", referenced from: 
     _clang_saveTranslationUnit in libclang.a(CIndex.o) 
     clang::cxindex::Logger::operator<<(CXTranslationUnitImpl*) in libclang.a(CIndex.o) 
     _clang_tokenize in libclang.a(CIndex.o) 
     _clang_annotateTokens in libclang.a(CIndex.o) 
     clang::cxindex::Logger::~Logger() in libclang.a(CIndex.o) 
    "llvm::raw_ostream::operator<<(llvm::format_object_base const&)", referenced from: 
     _clang_getCursor in libclang.a(CIndex.o) 
     clang::cxindex::Logger::operator<<(llvm::format_object_base const&) in libclang.a(CIndex.o) 
     clang::cxindex::Logger::operator<<(CXSourceRange) in libclang.a(CIndex.o) 
     clang::cxindex::Logger::operator<<(CXSourceLocation) in libclang.a(CIndex.o) 
     clang::cxindex::Logger::~Logger() in libclang.a(CIndex.o) 
    "llvm::raw_ostream::operator<<(unsigned long)", referenced from: 
     clang::cxindex::Logger::~Logger() in libclang.a(CIndex.o) 
     _clang_formatDiagnostic in libclang.a(CIndexDiagnostic.o) 
    "llvm::MemoryBuffer::getMemBufferCopy(llvm::StringRef, llvm::StringRef)", referenced from: 

這是否意味着脂創造了不正確的脂肪的lib?我如何解決它?我需要應用程序在ios模擬器和設備上運行。

PS。

MBA-Anton:llvm_34_ios_fat_installed asmirnov$ lipo -info ../iOS_Projects/StaticLibraryUsage2/StaticLibraryUsage2/libclang.a 
Architectures in the fat file: ../iOS_Projects/StaticLibraryUsage2/StaticLibraryUsage2/libclang.a are: i386 armv7 

PPS。 Xcode構建命令行:

Ld /Users/asmirnov/Library/Developer/Xcode/DerivedData/TestProjectE-axtxqjlvmrcxqsfnvgobybceosvb/Build/Products/Debug-iphonesimulator/StaticLibraryUsage2.app/StaticLibraryUsage2 normal i386 
    cd /Users/asmirnov/Documents/dev/src/iOS_Projects/StaticLibraryUsage2 
    export IPHONEOS_DEPLOYMENT_TARGET=7.1 
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/asmirnov/Library/Developer/Xcode/DerivedData/TestProjectE-axtxqjlvmrcxqsfnvgobybceosvb/Build/Products/Debug-iphonesimulator -L/Users/asmirnov/Documents/dev/src/llvm_34_ios_fat_installed -L/Users/asmirnov/Documents/dev/src/iOS_Projects/StaticLibraryUsage2/StaticLibraryUsage2 -L/Users/asmirnov/Documents/dev/src/llvm_34_ios_i386_installed/lib -F/Users/asmirnov/Library/Developer/Xcode/DerivedData/TestProjectE-axtxqjlvmrcxqsfnvgobybceosvb/Build/Products/Debug-iphonesimulator -filelist /Users/asmirnov/Library/Developer/Xcode/DerivedData/TestProjectE-axtxqjlvmrcxqsfnvgobybceosvb/Build/Intermediates/StaticLibraryUsage2.build/Debug-iphonesimulator/StaticLibraryUsage2.build/Objects-normal/i386/StaticLibraryUsage2.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -lclang -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker /Users/asmirnov/Library/Developer/Xcode/DerivedData/TestProjectE-axtxqjlvmrcxqsfnvgobybceosvb/Build/Intermediates/StaticLibraryUsage2.build/Debug-iphonesimulator/StaticLibraryUsage2.build/Objects-normal/i386/StaticLibraryUsage2_dependency_info.dat -o /Users/asmirnov/Library/Developer/Xcode/DerivedData/TestProjectE-axtxqjlvmrcxqsfnvgobybceosvb/Build/Products/Debug-iphonesimulator/StaticLibraryUsage2.app/StaticLibraryUsage2 

回答

0

我不得不在項目中添加所有libLLVM * .a文件,並且項目已成功編譯。但是我現在已經運行時錯誤:

dyld: Library not loaded: @rpath/libclang.dylib 
    Referenced from: /Users/asmirnov/Library/Application Support/iPhone Simulator/7.1/Applications/99583E4A-2848-4D44-A3DC-88218D911B46/StaticLibraryUsage2.app/StaticLibraryUsage2 
    Reason: image not found 

我不知道,如果是相關問題,或者我已經解決了這個問題,現在有另一個問題。

相關問題