導航:首頁 > 源碼編譯 > ios程序編譯

ios程序編譯

發布時間:2023-03-18 11:57:42

『壹』 ios 怎麼配置編譯ffmpeg

IOS上編譯ffmpeg需要先下載兩個程序:iFrameExractor和ffmpeg
編譯步驟:
1、在終端下: cd /iFrameExtractor/ffmpeg 建議開始就執行 sudo -s (獲取許可權命令)
2、在終端下輸入 ./configure --prefix=/iFrameExtractor/ffmpeg --libdir=iFrameExtractor/ffmpeg/lib --enable-gpl --enable-static --disable-shared --enable-swscale --enable-zlib --enable-bzlib --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-pthreads
3、執行make 這里會有一堆的編譯情況。
註:最好先升級Command Line Tools,避免編譯錯誤

4、執行make install。 (執行完後 到iFrameExtractor/ffmpeg/lib文件上去看看)
出現 libavcodec libavdevice libavformat libavutil libswscale5個.a文件
5、用xcode 打開iFrameExractor工程,確認Header Search Paths里有:"$(SRCROOT)/ffmpeg"路徑。 $(SRCROOT)表示工程路徑。同時可以看到iFrameExractor工程下ffmpeg文件下的.a文件都不是紅色的了。

6、真機上編譯(模擬器上i386,真機上是arm的,真機還分arm6 和arm7 )
以下是針對arm7的

/configure --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --enable-cross-compile --arch=arm --target-os=darwin --cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='gas-preprocessor/gas-preprocessor.pl /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' -- sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk --cpu=cortex-a8 --extra-cflags='-arch armv7' --extra-ldflags='-arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk' --enable-pic
7、執行 make 和make install 就有上面的幾個.a文件,至此編譯結束。

『貳』 iOS開發之條件編譯

#if  (條件語句)

條件符合執行的語句

#elif (條件語句)

條件符合執行的語句

#else

所有條件不符合時,執行的語句

#endif

在條件編譯中,只編譯條件滿足時,之後的語句,其餘語句不編譯。(這里指#if和#endif之間的語句)

條件語句一般使用宏定義

例1:在iOS10及iOS10以上運行

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0

#endif

例2:在宏定義DEBUG時執行執行,沒有則不執行

#define DEBUG

#ifdef DEBUG

條件符合執行的語

#endif

『叄』 iOS 編譯報錯怎麼辦

1.編譯iPad真機時,選擇了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad.

若編譯出現如下錯誤:

Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1

則修改 GCC4.2CodeGeneral區域中的ComplieForThumb為非選中.

已經有了開發者證書及私鑰後,可直接在越獄的手機上調試.

2. 編譯鏈接時, "_OBJC_CLASS_$_xxx", referenced from:可能需要重新建立某個類的文件.

或者:選擇項目名,在detail列表中的target列(顯示為一個又圓圈),把這個文件的復選選中,或者再次選中.以把它加入到這個target裡面來.

3.在sdk4.0及以上使用RegexKitLite報'captureCount' was not declared in this scope錯誤,是在非.m文件中使用了它的原因.

4.there is no sdk with the name or path.

從網上down的開源代碼,結果運行的時候常出現這樣的錯,並且在deployment中沒有iosdeploymenttarget選項.

嘗試 Project/Edit Active Target/ 及 Set Active SDK菜單項,來回切換一下Active Configuration。

5. EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION錯誤,意味著這個app有內存管理的問題,一般是因為訪問野指針對象造成的。

一個和內存相關的崩潰一般很難定位到源代碼,因為這個惡魔可能很早就在程序中做了壞事了。假如一段有問題的代碼混亂了內存結構,這樣產生的蝴蝶效應可能會在之後很久才表現出來,並且總在不同的地方。所以,若有指針類型出現了不可能的變化,很可能就是因為內存結構被野指針調用混亂了。

修復一些警告後,可能就能預防一些內存錯誤。警告在左邊靠近行號的黃色三角指出一個編譯警告,你點擊那個黃色的三角形,xcode可能會彈出一個「Fix-it」的建議。

EXC_BAD_ACCESS崩潰不像SIGABRT,將不會得到很明朗的錯誤消息。然而可以使用一個讓人看到曙光的調試工具:Zombies!死亡對象工具。打開這個項目的scheme editor,選擇Run 選項,然後選擇Diagnosics標簽。勾上Enable Zombie Objects選項。當這個zombie工具被啟用之後,即使這個對象被釋放了,這個對象的內存也不會被清理。所以,那塊內存將會被標記為「長生不死的」。假如你試著之後又去使用這塊內存,這個app能夠意識到你的錯誤操作,並且app將會拋出「messagesent to daellocated instance」錯誤並且終止運行。

在工程中加入NSZombieEnabled 環境變數,並設為啟用,則在 EXC_BAD_ACCESS 發生時,XCode 的 Console 會列印出問題描述中,設置方法:雙擊Executables 下的 可執行模組,在彈出窗口中,Variables to be set in the environment,添加 NSZombieEnabled,並設定為 YES,點擊選中復選框啟用此變數。

可以再加入 MallocStackLogging 來啟用malloc記錄,以獲得更多的提示來幫助定位問題。

在gdb窗口輸入 (格式: shell malloc_history <id> <address>) shellmalloc_history1436 0x5f7fcf0, 也可以在終端中去運行 就要去掉以上的shell 指令 如 malloc_history <id> <address>

應該僅當需要調試內存時,才設置上述環境變數。

注意一點:不應該一直啟用zombie objects。因為這個工具將永遠不會釋放內存,只是簡單標記一下這個內存是不死的,你最終將會在某個時候耗盡所有的內存,因為所有分配過的內存都不會得到重用。因此應該在排查內存相關的錯誤的時候才開啟zombie objects,其他時候應該關閉它。

在xcode4中,To edit environment variables, go to Menu Proct / Edit Scheme…, select the desired configuration (you probably want 'Run') from the left sidebar first and then click on the Arguments tab. Environment variables are configurable there.

6.運行一個IPhone程序時,彈出窗口說「程序運行失敗,預置描述文件已過期」 。 解決辦法是,在Xcode中, window-> Orgnazier -> 你的iphone ->刪除帶有紅*的該程序之前的Profile 。 然後從Xcode運行該程序.

7.真機編譯時報 Code Sign error: The identity doesn't match any valid certificate/private key pair in the default keychain

修改工程和Targets的get infouild 中的code signing identity為空

8.調試列印

CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like: {value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}

If NSLog() is printing something out as an NSCFType, try CFShow().

9. 編譯時報 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1,修改C/C++ Compiler Version為gcc4.2

10.this class is not key value coding-compliant for the key viewController

可能在創建了一個基於view的工程,而後把生成的viewcontroller刪除了,但是在.xib中還有對它的引用,在IB中直接用delete鍵刪除掉它就行了。

11.這台電腦上已經存在一個名為「embedded.mobileprovision」的預置文件,您是否要替換么?

http://blog.sina.com.cn/s/blog_6907b67f0100o2vw.html

12.真機調試時報failed to upload *.app

http://hi..com/%CB%E6%B7%E7_1989/blog/item/9649f49f805f05aec8eaf466.html

http://www.shouyanwang.org/thread-462-1-1.html

13.記的release時,先置delegate為nil。

一個節點不應該保留任何對不屬於它的節點的引用。

14.模擬器

將xcode升級到4.3.1以後發現,ipad的模擬器,沒有Home鍵了。Command+Shift+H就可以實現類似點擊Home鍵的效果了。

『肆』 如何使用xcodebuild在命令行編譯iOS工程

第一步,打開Xcode,選擇左側得 OSX 下的 Application,點擊 Commond Line Tool,按下 next 鍵;

『伍』 ios代碼編譯差異性怎麼改

ios代碼友櫻編譯差異性改的方式是:「首選項」中的檢查設置|編輯器|檢查現在可視化突出顯示樣式。如果要更改檢查在編輯器中的顯示方式,可以使用新的「在編輯器中鬧培突出顯示」好彎叢下拉菜單進行設置,該菜單可方便地顯示所有可用的突出顯示樣式。

『陸』 怎麼用蘋果電腦編程

1、使用Xcode軟體。

Xcode是一個蘋果系統上的集成開陵豎發環境(IDE),就是說用Xcode就能編寫C語言程序,並編譯運行。也能開發ios程序等,是一種軟體。

2、在windows上類似這種能編c語言的還有微軟出的visual studio,和其他免費的唯凳一些如codeblocks,c-free等指汪旅。

『柒』 iOS編譯加速-CCache

CCache是一個編譯工具,可以將xcode編譯文件緩存起來,從而達到編譯提速。

優點
能大幅度地提升編譯速度,起碼要減少掉 50% 的編譯時間
不需要對項目作出重大調整
不需要改變開發工具鏈

缺點
不支持clang的moles,需要手動引入鏈接庫
不支持oc++
不支持swift

brew install ccache

需要兩個腳本,需要對c++和oc分別處理

修改兩個文件的許可權
$ chmod 777 ccache-clang

cache directory /Users/frank/.ccache
primary config /Users/frank/.ccache/ccache.conf
secondary config (readonly) /usr/local/Cellar/ccache/3.6/etc/ccache.conf
stats updated Thu Apr 25 17:20:42 2019
cache hit (direct) 0
cache hit (preprocessed) 1
cache miss 855
cache hit rate 0.12 %
called for link 1
compile failed 4
unsupported compiler option 487
no input file 2
cleanups performed 0
files in cache 4134
cache size 133.5 MB
max cache size 10.0 GB

移除PCH,CCache是通過md4進行緩存查找,因此當你修改了 PCH 或者 PCH 引用到的頭文件的內容時,會造成全部緩存失效,只能全體重新編譯。

『捌』 iOS clang編譯的使用

4.按ESC鍵 輸入:wq退出,然後在終端輸入source ~/.bash_profile,這個不能忘了
5.進入要編譯的文件的文件目錄下

『玖』 ios 編譯調試技巧

一般沒有引用 <UIKit/UIKit.h> 等系統動態庫時:

引用oc庫槐判亮時沖仔,會報錯

解決方案:

其他解決方案,xcode命令行:

執行後,本地會多出一個文件,在 /private/tmp/msgSend-xxxx ,可以看到當前調用的所有方法。

添加方法: Project -> Scheme -> Edit Scheme ,在 Arguments 下可以添加運鉛寬行時的環境變數( Environment Variables )

『拾』 如何將寫好的iphone程序編譯打包成ipa文件

在項目開發中,我們通常會需要將工程文件打包成.ipa文件,提供給越獄的iphone安裝。
方法步驟:
1.首先應該給工程安裝好配置文件(這里不再敖述),在ios device的狀態下,運行成功。

2.選擇Proct->archive

3.點擊Distribute按鈕,彈出新窗口,選擇Export as Xcode Archive,如下:

4.彈出是否保存,點擊save。

5.選擇生成的文件,xxx 13-5-10 下午4.00.xcarchive,右鍵點擊,選擇Show Package Contents

6.選擇Procts ->Applications ,就回看到你的.app文件;接下來就是將.app文件托至iTunes應用上,讓itunes運行.app文件;右鍵選擇生成的文件,選擇show in finder,就能看到對應的.ipa文件了。

閱讀全文

與ios程序編譯相關的資料

熱點內容
如何查看伺服器系統版本信息 瀏覽:512
成都市土地出讓金演算法 瀏覽:698
鋼筋加密標記 瀏覽:567
ps中擴展功能在文件夾的什麼位置 瀏覽:903
雙極壓縮機為什麼要先高壓 瀏覽:527
蘋果手機伺服器填什麼 瀏覽:832
android移動動畫效果 瀏覽:691
電子和伺服器是什麼意思 瀏覽:691
phpurl中文亂碼問題 瀏覽:893
程序員那麼可愛大結局陸漓產子 瀏覽:538
java如何從雲伺服器讀取本地文件 瀏覽:923
壓縮空氣軟管製作方法 瀏覽:911
天河三號演算法 瀏覽:924
php隊列教程 瀏覽:632
洪水命令 瀏覽:529
安卓怎麼弄成蘋果在線 瀏覽:435
谷歌web伺服器地址 瀏覽:899
安卓鎖屏圖片如何刪除 瀏覽:719
python3多進程編程 瀏覽:714
證明代碼是程序員寫的 瀏覽:397