2011-05-20 65 views
4

我已經設法在OSX上使用命令行上的make構建靜態C庫。如何建立一個基於Makefile的iPhone靜態庫?

我曾嘗試使用相同的Makefile(與ARCHFLAGS=-arch armv6 -arch armv7)建於iOS靜態庫,但它失敗:

gcc-4.2: error trying to exec '/usr/bin/arm-apple-darwin10-gcc-4.2.1': execvp: No such file or directory 

我猜它不工作,因爲我使用的OSX SDK而不是iOS SDK的某個部分。任何線索?

N.B.有關庫(levmar)和Makefile的更多詳細信息,請參閱this Stack Overflow answer

+0

你有這個工作嗎?我嘗試添加CC = llvm-gcc-4.2和ARCHFLAGS = -arch armv6 -arch armv7 -arch armv7s,但遇到錯誤:llvm-gcc-4.2 -arch armv6 -arch armv7 -arch armv7s -O3 -funroll-loops -Wall -c -o lm.o lm.c llvm-gcc-4.2:嘗試執行錯誤'/usr/bin/../llvm-gcc-4.2/bin/arm-apple-darwin11-llvm-gcc-4.2':execvp :沒有這樣的文件或目錄 llvm-gcc-4.2:嘗試執行錯誤'/usr/bin/../llvm-gcc-4.2/bin/arm-apple-darwin11-llvm-gcc-4.2':execvp:No這樣的文件或目錄 - 刪除archflags編譯罰款(但爲386) – 2012-10-28 10:38:03

回答

1

你需要找到:

  • iOS的編譯器的位置
  • 是在命令行調用

最簡單的方法是創建一個測試中使用的命令行選項XCode中的iPhone/iPad應用程序,構建它,然後查看構建日誌以查找XCode如何調用編譯器。

+0

我試着改變cc =指令爲鐺,但無法爲arm編譯。有錯誤clang -arch armv7 -O3 -funroll-loops -Wall -c -o lm.o lm.c 從lm.c包含的文件中:26: 從/usr/include/stdio.h:67包含的文件: 從/usr/include/_types.h:27包含的文件中: 從/usr/include/sys/_types.h:33包含的文件中: /usr/include/machine/_types.h:34:10 :致命錯誤:找不到'arm/_types.h'文件 #include「arm/_types.h」。關於如何解決這個問題的任何想法? – 2012-10-28 11:13:38

0

你能製作一個Xcode項目並在命令行或腳本上調用Xcode嗎?如果您不想維護Xcode項目,可以使用CMake來生成Xcode項目,然後在命令行或腳本中調用Xcode。這樣,您可以一直保留在文本文件和腳本域中。