xcode編譯慢
① 如何加快XCode編譯速度
C++builder是最快的C++編譯器之一,從編譯速度來說也可以說是最快的win32C++編譯器了。除了速度之外,C++builder的性能也在其它C++編譯器的之上,但許多delphi程序員仍受不了c++builder工程的編譯速度。的確,delphi的速度要比任和c++的編譯器都要快好多。Delphi在編譯一個小工程的時候可能不到一秒,大的工程一般也在5秒鍾這內編譯完成了。 為什麼delphi會比c++builder快這么多?是否有方法來c++builder的編譯速度?本文就講解了為什麼C++的編譯器速度會慢,並且介紹了一個簡單的方法來減少c++builder的編譯時間。為什麼c++編譯器的速度會慢? c++builder 使用者怎麼通過預編譯頭文件來減少編譯時間? 講解基於VCL可視化工程的預編譯頭文件方法 優化c++builder對預編譯頭文件的使用 結論 注意事項為什麼c++編譯器速度慢? 在C++中,你只能使用預定義或是預先聲明了的函數,這意味什麼?來看一個簡單的例子,函數A()調用函數B(),函數A()只能在函數B()的原型或是函數體在A()之前才能調用它
② xcode 是什麼東西
Xcode是蘋果公司向開發人員提供的集成開發環境(非開源),用於開發Mac OS X,iOS的應用程序。其運行於蘋果公司的Mac操作系統下。
不管你用C、C++、Objective-C或Java編寫程序,在AppleScript里編寫腳本,還是試圖從另一個奇妙的工具中轉移編碼,你會發現 Xcode 編譯速度極快。每次操作都很快速和輕松。
蘋果公司為用戶提供了全套免費的Cocoa程序開發工具(Xcode)。Mac OS X一起發行,在蘋果公司官方的網站下載。
③ xcode 11.7特別卡 怎麼解決
應該是電腦性能問題,我這電腦用的固態硬碟,運行什麼都很流暢。另外xcode 12已經發布了,建議試試哦! 一定要在App Store里更新哦!第三方下載的安裝包不可靠!
④ macbook pro頂配為什麼用codeblocks編譯能慢成這樣!
既然這樣的話,為什麼不在Mac下寫呢?Mac下也是有CodeBlocks的。另外Mac下不僅可以使用GCC還有Clang,Clang編譯器的編譯執行效率甩GCC幾條街呢。
在Mac下只用裝個Xcode就會自帶GCC和Clang編譯器了。Xcode本身也是個IDE,可以寫C語言。
下圖是我在Mac OS X 10.10(Yosemite)上用clang編譯你這個程序,最後執行時間可以看到小於0.01s而被忽略不計了。

⑤ xcode 如何編譯
Xcode 常用編譯選項設置
在xcconfig文件中指定即可。
用標准庫連接
LINK_WITH_STANDARD_LIBRARIES = YES如果激活此設置,那麼編譯器在鏈接過程中會自動使用通過標准庫的鏈接器。
Info.plist 輸出編碼
INFOPLIST_OUTPUT_FORMAT = binary指定Info.plist文件的輸出編碼(默認情況下,輸出與輸入的編碼保持不變),這個輸出編碼能指定「binary」或者「XML」。
生 成調試符號GCC_GENERATE_DEBUGGING_SYMBOLS = NO當啟用的時候,詳情等級能夠通過build的』Level of Debug Symbols』設置去控制。 隱藏內聯方法GCC_INLINES_ARE_PRIVATE_EXTERN = YES Objective-C GCGCC_ENABLE_OBJC_GC = Unsupported 優化級別GCC_OPTIMIZATION_LEVEL = Fastest, Smallest [-OS]
None: 不做優化使用這個設置,編譯器的目標是減少編譯成本,使調試產生預期的結果。
Fast:優化編譯將為大函數佔用更多的時間和內存使用這個設置,編譯器將嘗試減少代碼的大小和執行時間,不進行任何優化,需要大量編譯時間。
Faster:編譯器執行幾乎所有支持的優化,它不考慮空間和速度之間的平衡與「Fast」設置相比,該設置會增加編譯時間和生成代碼的性能。編譯器不進行循環展開、內聯函數和寄存器變數的重命名。
Fastest:開啟「Faster」支持的所有的優化,同時也開啟內聯函數和寄存器變數的重命名選項
Fastest,smallest:優化代碼大小這個設置啟用「Faster」所有的優化,一般不增加代碼大小,它還執行旨在減小代碼大小的進一步優化。
C 語言方言GCC_C_LANGUAGE_STANDARD = C89 警告 檢查Switch語句GCC_WARN_CHECK_SWITCH_STATEMENTS = YES 隱藏局部變數GCC_WARN_SHADOW = YES 隱式轉換成32位的類型GCC_WARN_64_TO_32_BIT_CONVERSION = YES 未完成的Objective-C協議GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES 抑制所有的警告GCC_WARN_INHIBIT_ALL_WARNINGS = NO 初始化時沒有完整的括弧GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES例子(a沒有完全的括弧,b有):
int a[ 2 ][ 2 ] = { 0, 1, 2, 3 };
int b[ 2 ][ 2 ] = { { 0, 1 }, { 2, 3 } };
不匹配的返回類型
GCC_WARN_ABOUT_RETURN_TYPE = YES 缺少括弧GCC_WARN_MISSING_PARENTHESES = YES例子:
{
if( a )
if( b )
foo();
else
bar();
}
{
if( a )
{
if( b )
foo();
else
bar();
}
}
在結構體初始化時缺少欄位
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
缺 少函數原型GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES 在文件結尾缺少新行GCC_WARN_ABOUT_MISSING_NEWLINE = YES 選擇了多個定義的類型(@Selector)GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO 嚴格的Selector匹配GCC_WARN_STRICT_SELECTOR_MATCH = YES 把缺少函數原型當作錯誤GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES 把所有的警告當作錯誤GCC_TREAT_WARNINGS_AS_ERRORS = YES 未定義的SelectorGCC_WARN_UNDECLARED_SELECTOR = YES 未初始化的自動變數GCC_WARN_UNINITIALIZED_AUTOS = YES 未知的Pragma指令GCC_WARN_UNKNOWN_PRAGMAS = YES 未使用的函數GCC_WARN_UNUSED_FUNCTION = YES 未使用的標簽GCC_WARN_UNUSED_LABEL = YES 未使用的參數GCC_WARN_UNUSED_PARAMETER = YES 未使用的值GCC_WARN_UNUSED_VALUE = YES當一個語句計算的結果顯式的未使用的時候發出警告 未使用的變數GCC_WARN_UNUSED_VARIABLE = YES 警告-所有過時的函數GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES offsetof宏未定義使用的警告GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
iphone 常用的<app>-info.plist設置
Application requires iPhone environment如 果應用程序不能在ipod touch上運行,設置此項為true;
Application uses Wi-Fi如果應用程序需要wi-fi才能工作,應該將此屬性設置為true。這么做會提示用戶,如果沒有打開wi-fi的話,打開wi-fi。為了節省 電力,iphone會在30分鍾後自動關閉應用程序中的任何wi-fi。設置這一個屬性可以防止這種情況的發生,並且保持連接處於活動狀態
Bundle display name這用於設置應用程序的名稱,它顯示在iphone屏幕的圖標下方。應用程序名稱限制在10-12個字元,如果超出,iphone將縮寫名 稱。
Bundle identifier這個為應用程序在iphone developer program portal web站點上設置的唯一標識符。(就是你安裝證書的時候,需要把這里對應修改)。
Bundle version這個會設置應用程序版本號,每次部署應用程序的一個新版本時,將會增加這個編號,在app store用的。
Icon already includes gloss and bevel effects默認情況下,應用程序被設置了玻璃效果,把這個設置為true可以阻止這么做。
Icon file(這個不用多說了)設置應用程序圖標的。
Main nib file base name應用程序首次啟動時載入的xib文件 這個基本用不到。
Initial interface orientation 確定了應用程序以風景模式還是任務模式啟動
Localizations多語言。應用程序本地化的一列表,期間用逗號隔開,例如 應用程序支持英語 日語,將會適用 English,Japanese. Status bar is initially hidden 設置是否隱藏狀態欄。你懂的。
Status bar style選擇三種不同格式種的一種。
URL types應用程序支持的url標識符的一個數組。
用URL Scheme進行程序跳轉
打開info.plist,添加一項URL types
展開URL types,再展開Item1,將Item1下的URL identifier修改為URL Scheme
展開URL Scheme,將Item1的內容修改為myapp
其他程序可通過myapp://訪問此自定義URL
參考:http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
IOS後台播放音樂
OS後台播放只是在IOS4.0以後的版本支持。
1,設置後台播放會話
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory: error:nil];
2,在info.plist裡面添加
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
靜態庫沒法包含category/分類?
如果你導入一個objc靜態庫,發現很多objc的category 不能調用,可以嘗試在主工程中加入linker選項:
-all_load 加入這個一般就夠了
-ObjC
讓程序最小化再開啟時,從頭開始:
按下 「Home」 鍵以後程序可能並沒有退出而是轉入了後台運行。如果您想讓應用直接退出,最簡單的方法是:在 info-plist 裡面找到 Application does not run in background 一項,勾選即可。
程序退出後任務欄還是有圖標,但是程序原來的所有運行狀態全部丟失,點擊任務欄圖標也不過相當於再次啟動程序;如果允許後台運行,點擊任務欄圖標後會恢復程序中斷時的界面。
本地化字元串:
在infoPlist.strings裡面寫
「string1″=」水果」
代碼裡面寫 myLabel.text = NSLocalizedString(@」string1″, nil);
本地化的Bundle display name:
1)創建一個空文件,取名為InfoPlist.strings
2)對InfoPlist.strings進行本地化(Get Info -> Make Localization),然後設置需要的語言(如中文zh)
3)編輯不同的InfoPlist.strings文件,設置顯示名字
CFBundleDisplayName = 「名字」;
4)(這步不做貌似也可以)編輯Info.plist,添加一個新的屬性Application has localized display name, 設置其類型為boolean,並將其value設置為選中狀態
default圖片的銜接問題:
程序開始後,手動載入default圖片,然後進行過渡效果即可。
遍歷目錄:
NSString *appDocDir = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] relativePath];NSArray *contentOfFolder = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:appDocDir error:NULL];for (NSString *aPath in contentOfFolder) { NSLog(@"apath: %@", aPath); NSString * fullPath = [appDocDir :aPath]; BOOL isDir; if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir] && !isDir) { [fileList addObject:aPath]; }}
IB:
不論寫不寫property的retain,由IBOutlet都會為對象加一個retainCount,所以只要連接了,就需要在viewDidUnload與dealloc中release並適當置為nil。
預先在IB裡面載入好的文件(比如圖片),即使釋放了Controller,IB中的文件也不會被釋放,直至內存警告,解決辦法是較大的資源用代碼載入。
UIWebView:
用代碼載入UIWebView的內容,navigationType是UIWebViewNavigationTypeOther
CAAnimation:
一定要記得[self.view.layer removeAllAnimations];因為CAAnimation會retain它的delegate
設備型號識別,可通過審核:
+ (NSString*)getDeviceVersion{ size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = (char*)malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]; free(machine); return platform;}
輸出:
//@」iPad1,1″
//@」iPad2,1″
//@」i386″
逗號後面數字解釋:(i386是指模擬器)
1-WiFi版
2-GSM/WCDMA 3G版
3-CDMA版
AppleTV(2G) (AppleTV2,1)
iPad (iPad1,1)
iPad2,1 (iPad2,1)Wifi版
iPad2,2 (iPad2,2)GSM3G版
iPad2,3 (iPad2,3)CDMA3G版
iPhone (iPhone1,1)
iPhone3G (iPhone1,2)
iPhone3GS (iPhone2,1)
iPhone4 (iPhone3,1)
iPhone4(vz) (iPhone3,3)iPhone4 CDMA版
iPhone4S (iPhone4,1)
iPodTouch(1G) (iPod1,1)
iPodTouch(2G) (iPod2,1)
iPodTouch(3G) (iPod3,1)
iPodTouch(4G) (iPod4,1)
判斷ipad/iphone
12UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPadUI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone
或者
1[[[UIDevice currentDevice] model] isEqualToString:@"iPad"];
判斷設備是否有攝像頭
1[UIImagePickerController isSourceTypeAvailable:];
⑥ xcode xip解壓很慢怎麼辦
普通配置500G硬碟就可以了。 原因: 1、xcode文件本身解壓出來就3G多,文檔裝完大概2G(xcode/macos/ios),還有模擬器1.5G左右。 2、安裝完成後可刪除下載的磁碟鏡像,也可以將磁碟鏡像存儲在外部移動設備。 簡介: Xcode 是蘋果系統上的集成開...
⑦ iOS開發中可以節省50%編譯等待時間的幾個措施
修改一些源文件。
按下Xcode中的運行程序按鈕。
觀察在phone或者模擬器上的效果(我的例子中使用的是模擬器)。
跳到第一步。在我修改了一個Spotify的iOS客戶端中相對較小的 Objective C 源文件之後,我記錄了一下步驟(2)到步驟(3)花費的時間,直到模擬器載入完應用程序:我的家用iMac(說實話,已經很舊了)花費了82秒(平均值)。通過觀察Xcode的編譯流程我意識到大部分時間花費在「Linking」和「Generating dSYM file」階段。
Linking花費了29秒
生成dSYM 花費了25秒這兩個階段佔用了等待時間的(29 + 25) / 82 * 100 = 62 % 。但是,畢竟,Spotify的iOS客戶端代碼庫是非常大的(鏈接器要把大約2000個目標文件組合起來),花費這么多時間或許也有些道理。然而,並非完全如此……
⑧ Xcode無法編譯,一運行就報錯,請問如何解決
1、XCode默認使用與CPU核數相同的線程來進行編譯,但由於編譯過程中的IO操作往往比CPU運算要多,因此適當的提升線程數可以在一定程度上加快編譯速度。
2. 將Debug Information Format改為DWARF 在工程對應Target的Build Settings中,找到Debug Information Format這一項,將Debug時的DWARF with dSYM file改為DWARF。 這一項設置的是是否將調試信息加入到可執行文件中,改為DWARF後,如果程序崩潰,將無法輸出崩潰位置對應的函數堆棧,但由於Debug模式下可以在XCode中查看調試信息,所以改為DWARF影響並不大。這一項更改完之後,可以大幅提升編譯速度。
3. 將Build Active Architecture Only改為Yes 在工程對應Target的Build Settings中,找到Build Active Architecture Only這一項,將Debug時的No改為Yes。 這一項設置的是是否僅編譯當前架構的版本,如果為No,會編譯所有架構的版本。需要注意的是,此選項在Release模式下必須為Yes,否則發布的ipa在部分設備上將不能運行。這一項更改完之後,可以顯著提高編譯速度。
⑨ xcode編譯緩存與本地時間有關嗎
有關系。
我是安裝一款軟體,然後通過改個系統時間來升級為免費版本。安裝完成後忘記把系統時間改回來了,然後去編譯xcode(6.4)。真機測試的時候提示開發者證書過期了。what!剛剛還好好的,為什麼開發者證書就過期了呢?
鑰匙串訪問
通過查看鑰匙串裡面的證書發現真的都過期了,證書全部顯示無效。好傢伙,我估摸著怎麼突然證書都失效了呢,然後看到了證書的日期
過期是2016年
原來是系統時間被改成2020年了,怪不得證書過期了,然後我刪掉了原來的證書,改回了系統的時間,重新安裝了新的證書,ok 可以真機測試了。真的是給自己跪了。(PS:個人認為,時間改回來就好,證書不需要刪也是可以用的)
⑩ Unity的工程導出Xcode編譯卡死,Clang占爆內存,是什麼原因呢
類似的教程網路有很多了,unity先切換到ios平台,導出後是一個xcode工程,找個MAC機器,安裝xcode,打開剛才導出的xcode工程,如果沒什麼插件,直接archive後導出ipa就行了,有插件就先添加相關類庫,當然,前提是你有蘋果的開發者賬號,相關證書的生成網路有教程
