淺談Xcode 交叉開發編程中選項
淺談Xcode 交叉開發編程中選項是本文要介紹的內容,本文簡單的講述了Xcode交叉編程中的問題,我們先來看內容。
選擇開發用的OS SDK
為了在makefile中選擇SDK,需要在工程的編譯和連接命令中加入恰當的選項,即為編譯器加入-isysroot選項;為連接器加入-syslibroot選項。如果您使用GCC 4.0來編譯和連接,則應該把兩個選項同時加入到命令行中。
-isysroot和-syslibroot選項都要求指定您希望使用的SDK目錄的全路徑。最好的做法通常是創建一個makefile目錄變量來指定這個路徑。下面的實例顯示了在一個簡單的C程序中如何給makefile變量分配值:
- SDK=/Developer/SDKs/MacOSX10.4.0.sdk
- CFLAGS= -isysroot ${SDK}
- LDFLAGS= -isysroot ${SDK} -Wl,-syslibroot,${SDK}
請注意:如果您的makefile直接將LDFLAGS選項傳遞給ld,而不是傳遞給gcc,則應該將連接器的選項指定為LDFLAGS= -syslibroot ${SDK},因為ld不支持-Wl語法。
SDK的目錄位于/Developer/SDKs路徑下。您自己的連接器開關應自然包含程序需要的其它編譯器和連接器的選項。
重要信息:GCC 4.0支持-isysroot開關,但是沒有在編譯器的man頁面上記述,因為這個功能在將來可能會發生變化。如果這個功能被正式加入到編譯器中,man頁面上就會加入相應的更新信息。GCC的早期版本不支持這個開關。
選擇部署OS
在makefile中設置部署目標需要使用另外一個makefile變量,形式如下:
- ENVP= MACOSX_DEPLOYMENT_TARGET=10.3
MACOSX_DEPLOYMENT_TARGET選項的值確定了您的軟件需要支持的最早的目標系統版本。在前面的例子中,目標系統為10.3。在makefile中將該變量包含在您的編譯和連接命令的前面,就可以了。例如,一個簡單的C程序可能使用下面的連編命令:
- testapp: main.o
- ${ENVP} ${CC} ${LDFLAGS} -o testapp main.o
- main.o:
- ${ENVP} ${CC} ${CFLAGS} -c main.c -o main.o
小結:關于淺談Xcode 交叉開發編程中選項的內容介紹完了,希望本文在你學習過程中,對你有所幫助!