我正在使用OCLint,而OCLint需要所有編譯命令來執行lint作業。現在OCLint使用xcpretty來解析xcodebuild.log以獲取編譯命令。所以,我必須建立這個項目,即使我只想要少量源文件。我想知道是否有解析xcodebuild.log以外的編譯命令?如何從Xcode獲取所有編譯命令?
1
A
回答
1
這樣做的一種方法是編寫clang
和連接器的包裝。
使用此問題:How can I force Xcode to use a custom compiler?您可以重定向Xcode以使用您自己的「clang」編譯代碼,這可能是一個python shell腳本。這個腳本只會抓取傳遞給它的命令並將其轉儲到某個文件中。
雖然有一個細節:如果你使用自定義CC
Xcode也會嘗試使用它來鏈接C/C++文件,這就是爲什麼你的腳本在鏈接器模式下被調用的原因。
我已經將這項技術用於另一項任務:用-emit-llvm
標記編譯我的整個項目,以便將我所有的代碼作爲LLVM位代碼。類似Python腳本的例子可以在here找到。
首先編寫「hello world」腳本。告訴Xcode使用它作爲CC
,運行你的項目並在構建日誌中看到「hello world」字符串。從那裏你將知道如何進行。
+0
太好了,謝謝。 – GoInterface
0
我只是使用-dry-run和regexpr來過濾編譯命令。 -dry-run說, -dry-run do everything except actually running the commands
表現還算不錯。 如果xcode提供一個,它將會很棒。他們將是唯一可以做到這一點的人,我認爲這非常有用。
相關問題
- 1. xcode命令行編譯
- 2. 如何從Linux命令行獲取exe的編譯日期
- 3. 如何編譯命令行從
- 4. 如何從命令行編譯APK?
- 5. 使用命令行編譯xcode項目
- 6. XCode 4.5命令行編譯錯誤
- 7. Xcode命令行編譯依賴項目
- 8. 從命令行編譯
- 9. gnu從命令行編譯
- 10. 編譯Java從命令
- 11. 如何從所有I18n後端獲取所有翻譯
- 12. 如何使用Clang通過命令行編譯Xcode項目?
- 13. 使用鏈輪 - 獲取有關耙錯誤編譯命令
- 14. 如何在從命令行編譯時獲取堆棧跟蹤中的行號
- 15. 爲什麼從命令行打開時Xcode無法編譯?
- 16. 如何捕獲命令行中的所有命令和輸出?
- 17. 如何從Git命令獲取分支?
- 18. 如何從LPRT ftp命令獲取IPv6
- 19. 如何從命令行獲取NSUserDefaults
- 20. 如何從Windows命令行獲取cURL?
- 21. 如何從cmake-gui獲取cmake命令?
- 22. 如何從命令行獲取tomcat JAVA_OPTS?
- 23. 命令行編譯
- 24. XCode每次編譯所有源代碼
- 25. 如何獲取所有可用shell命令的列表
- 26. 如何獲取clang中描述的所有命令行選項?
- 27. 可以從命令行編譯,但不能從makefile編譯
- 28. 如何在編譯時獲取所有繼承類的類型?
- 29. 如何編譯木偶清單以獲取所有的日誌
- 30. 如何使用命令行編譯包
我認爲沒有合適的其他方式。但是你可以考慮_reverting你的問題_:你可以使用'cmake'來創建Xcode項目Cmakefiles。 BTW。 Xcode有一個很棒的內置分析器。你爲什麼不使用它? – clemens
@macmoonshine非常感謝你,我不熟悉'cmake',你能不能更具體一些,我是如何實現這一點的。 Xcode buildin分析器支持分析所有源文件的一部分嗎? – GoInterface
我不太熟悉'cmake';),但你可以很容易地創建Xcode項目(http://stackoverflow.com/questions/41829852/how-to-create-xcode-project-from-already-existing-混帳cmake的項目)。您可以使用_Product - > Analyze_或_Shift-Command-B_運行Xcode分析器。 – clemens