使用iPad編寫C++程式

來源:互聯網
上載者:User

使用iPad編寫C++程式 一、搭建C++環境
1在cydia內安裝 deb 包
註:在cydia-軟體源-設定中改為開發人員,否則有些deb搜尋不到

OpenSSH,OpenSSL
wget (下載工具)
Aptitude 及 APT 0.6 Transitional (deb包工具)
unzip 及 zip (解壓縮及壓縮打包工具)2用putty串連iPad(以下步驟也可以不通過電腦,直接在iPad上進行,不過搭建過程必須有網路,見後文)假設你的 iPad 的IP地址是192.168.1.104

Putty下載:http://putty.very.rulez.org/latest/x86/putty.exe
用 wifi 串連
Connection type: 選SSH(預設)
Port 選22(預設)
按Open(預設)


PuTTY 串連 192.168.1.104 後
Login打root
Password(假設你沒有更改密碼) 打alpine
註:無論是PuTTy還是本文最後說的iPad的命令列,輸入密碼時都不會顯示字元,輸完按斷行符號即可
註:無論是PuTTy還是本文最後說的iPad的命令列,登陸root賬戶後預設路徑為/var/root/
3安裝iPhone gcc及簽名工具

在PuTTY中打(PuTTy中滑鼠右鍵粘貼):

  1. wget http://apt.saurik.com/debs/libgcc_4.2-20080410-1-6_iphoneos-arm.deb
  2. dpkg -i libgcc_4.2-20080410-1-6_iphoneos-arm.deb
  3. apt-get install iphone-gcc ldid make

最後一句有可能發生的兩個錯誤:
1、如果提示找不到apt命令,在CYDIA中搜尋apt,安裝APT 0.6 Transitional,APT 0.7 (apt-key),APT 0.7 HTTPS Method,APT 0.7 Strict,Apt0.7 Strict (lib),Aptitude
註:雖然我不知道是哪個的作用,不過反正是好了,而且以後編程用的上,就都裝了吧
2、參考http://blog.163.com/cobyeah@126/blog/static/140137653201142354756503/
使用apt-get進行軟體的install或update時,有時會出現以下提示資訊:

  1. E:Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
  2. E:Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

刪除/var/lib/dpkg/lock檔案,即可
4下載sys32Libheader.tgz
115 下載:http://115.com/file/bhy27ghj
複製到/var/root
5安裝3.2 SDK (iPad)標頭檔
在PuTTY中打(PuTTy中滑鼠右鍵粘貼):

  1. mkdir -p /var/toolchain
  2. cd /var/toolchain
  3. tar xzvf /var/root/sys32Libheader.tgz
  4. cp -p /var/toolchain/sys32/usr/lib/libstdc++.* /usr/lib/
  5. cd /usr/lib/
  6. ln -s libSystem.B.dylib libSystem.dylib

到此,C++編程的環境就搭建好了,接下來用一個小程式講解怎麼進行編程二、如何進行編程
在電腦用記事本編寫HelloWorld.cpp

  1. #include
  2. using namespace std;
  3. int main()
  4. {
  5. cout << “Hello World !” << endl;
  6. return 0;
  7. }

把HelloWorld.cpp複製到/var/root/,
在PuTTY中打(PuTTy中滑鼠右鍵粘貼):

  1. arm-apple-darwin9-g++ -I"/var/toolchain/sys32/usr/include" -I"/var/toolchain/sys32/usr/include/c++/4.2.1" -I"/var/toolchain/sys32/usr/include/c++/4.2.1/armv7-apple-darwin9" -L"/var/toolchain/sys32/usr/lib" HelloWorld.cpp -o HelloWorld
  2. ldid -S HelloWorld
  3. ./HelloWorld


此時,用檔案管理軟體可以看到

這個就是編譯後的程式,可以用./HelloWorld運行(./指當前路徑)

綜述:
編譯:

  1. arm-apple-darwin9-g++ -I"/var/toolchain/sys32/usr/include" -I"/var/toolchain/sys32/usr/include/c++/4.2.1" -I"/var/toolchain/sys32/usr/include/c++/4.2.1/armv7-apple-darwin9" -L"/var/toolchain/sys32/usr/lib" 程式名稱.cpp -o 程式名稱
  2. ldid -S 程式名稱

執行:

  1. ./程式名稱

三、代碼編寫軟體
從上文在電腦建立.cpp檔案可以看出,現在iPad能做的只是具有C++的環境,進行編譯等,寫代碼還需其他的程式
原帖推薦的是Vi iMproved,可以在Cydia中搜尋並安裝,進入方式是在PuTTy或命令列下輸入vim,退出方式是連續快速輸入兩次大寫Z,具體詳細操作可參考http://www.caole.net/diary/vim.html
網上可找到很多的iPad的代碼編寫軟體,我使用的是Textastic (圖及下載見最後)

四、關於iPad端命令列
上文講的都是在電腦上通過PuTTy控制iPad編譯,執行程式。不過如果電腦隨時在身邊的話也就不用iPad編程了,接下來講怎麼在iPad上實現上述過程
在Cydia中搜尋並安裝MobileTerminal
開啟Terminal,點擊右下角的i可以進入程式設定,管理快捷輸入和手勢操作
此後所有步驟都和在電腦上用PuTTy一樣
註:搭建環境時必須有網路連接,如安裝iPhone gcc及簽名工具過程中
wget

http://apt.saurik.com/debs/libgcc_4.2-20080410-1-6_iphoneos-arm.deb需要連網下載

iPad端命令列進入root賬戶的方法:
輸入login
Login打root
Password(假設你沒有更改密碼) 打alpine

關於命令列使用的更多資訊可參考:
http://blog.sina.com.cn/s/blog_51d3553f0100xrxz.html

代碼編寫軟體:Textastic
一個編寫代碼的軟體,很方便,介面如下

中間的那個AssistiveTouch是我為了截屏的時候保護home鍵開的,跟程式無關
我沒裝iKeywi HD,因為感覺按鍵大了打字舒服,而且這個軟體帶字元輸入(鍵盤上面那一排,四個角的符號滑動輸入)
為了方便編譯器,可以建立快捷輸入
在iFile(一個檔案管理軟體,應該都知道)中,找到.cpp的路徑,按書籤,按“+”



複製/var…後的路徑,
在Terminal中,按右下角i,開啟菜單,Shortcut Menu-建立,Shortcut Action中輸入”cd “,粘貼,以後就可以在Terminal的左下角快捷輸入了

Textastic下載: Textastic-v4.0.2.ipa (5206 K) 下載次數:14

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.