淺談Xcode 交叉開發編程中選項

來源:互聯網
上載者:User

淺談Xcode 交叉開發編程中選項是本文要介紹的內容,本文簡單的講述了Xcode交叉編程中的問題,我們先來看內容。

選擇開發用的OS SDK

為了在makefile中選擇SDK,需要在工程的編譯和串連命令中加入恰當的選項,即為編譯器加入-isysroot選項;為連接器加入-syslibroot選項。如果您使用GCC 4.0來編譯和串連,則應該把兩個選項同時加入到命令列中。

-isysroot和-syslibroot選項都要求指定您希望使用的SDK目錄的全路徑。最好的做法通常是建立一個makefile目錄變數來指定這個路徑。下面的執行個體顯示了在一個簡單的C程式中如何給makefile變數分配值:

 
  1. SDK=/Developer/SDKs/MacOSX10.4.0.sdk  
  2. CFLAGS= -isysroot ${SDK}  
  3. 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變數,形式如下:

 
  1. ENVP= MACOSX_DEPLOYMENT_TARGET=10.3 

MACOSX_DEPLOYMENT_TARGET選項的值確定了您的軟體需要支援的最早的目標系統版本。在前面的例子中,目標系統為10.3。在makefile中將該變數包含在您的編譯和串連命令的前面,就可以了。例如,一個簡單的C程式可能使用下面的連編命令:

 
  1. testapp: main.o  
  2. ${ENVP} ${CC} ${LDFLAGS} -o testapp main.o  
  3. main.o:  
  4. ${ENVP} ${CC} ${CFLAGS} -c main.c -o main.o 

小結:關於淺談Xcode 交叉開發編程中選項的內容介紹完了,希望本文在你學習過程中,對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.