2013-10-21 47 views
0

我想使用xcodebuild編譯iOS項目。該項目通過XCode GUI構建得很好;但是,構建失敗與xcodebuild。xcodebuild - iOS - 鏈接錯誤的dylib

問題似乎是該項目需要libiconv.dylib和xcodebuild將其鏈接到錯誤的庫位置。就像它在/ sw/lib /中找到包含x86版本的庫一樣,而不是鏈接到XCode中包含的armv7/6版本。

我的問題是我該如何告訴Ld查看SDK目錄而不是/ sw/lib/?????

這裏的build命令:

xcodebuild -project MyProject.xcodeproj -target "release_iphone" -configuration Release -sdk "iphoneos7.0" PROVISIONING_PROFILE="${PROJ_PROF_UUID}" 

和這裏的錯誤我收到:

ld: warning: ignoring file /sw/lib//libiconv.dylib, file was built for x86_64 which is not the architecture being linked (armv7s): /sw/lib//libiconv.dylib 
Undefined symbols for architecture armv7s: 
    "_iconv_open", referenced from: 
     l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o) 
    "_iconv", referenced from: 
     l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o) 
    "_iconv_close", referenced from: 
     l2451 in libscanditsdk-iphone-3.1.1.a(mirasense.o) 
ld: symbol(s) not found for architecture armv7s 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

事情我已經嘗試:

  • 工作區/方案VS項目/目標
  • 將libiconv.dylib重新添加到「Link Binary with Libraries」
  • 添加SDK目錄「庫搜索路徑」
  • 加入「-isysroot $ SDKROOT」到「其他鏈接器標記」

回答

1

有可能是兩個原因error.In您的構建設置(搜索) 1)構建選項 - 編譯C/C++/Objective C的,這是正常工作,或者沒有支持的選項有

2)在搜索路徑 - 框架,標題,庫搜索路徑 有SDK的正確道路

因爲這兩個是常見的問題,因爲ios7和Xcode的5.But第一點似乎更可靠您的問題

+0

你是什麼意思關於「支持選項」?我看起來不錯:「編譯器C/C++/ObjectiveC」 - >「默認編譯器(Apple LLVM 5.0) – TMacGyver

+0

Nvm,看起來#2做的竅門,做了一個菜鳥的錯誤,忘記在搜索路徑上設置recurvise選項,但ty爲我們的幫助 – TMacGyver

+1

太棒了!它爲你工作:) 請給我1投1 ..如果你滿足我的答案 – Drake

0

這是說,該文件是爲64位架構構建的。我認爲你應該在項目中設置你的應用程序架構,從armv7/armv7s到armv7/armv7s/arm64。

+1

我知道這就是我說的,我該如何告訴鏈接器尋找正確的文件 – TMacGyver