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