翻譯|使用教程|編輯:鮑佳佳|2020-12-08 10:03:40.233|閱讀 555 次
概述:有了 CMake 3.15,在 Windows 上用 GNU 風格的命令行使用 Clang 編譯器成為可能。這也意味著可以用Mingw-w64工具鏈來使用Clang。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
CLion是一款專為開發C及C++所設計的跨平臺IDE。它是以IntelliJ為基礎設計的,包含了許多智能功能來提高開發人員的生產力。這種強大的IDE幫助開發人員在Linux、OS X和Windows上來開發C/C++,同時它還使用智能編輯器來提高代碼質量、自動代碼重構并且深度整合CMake編譯系統,從而提高開發人員的工作效率。
有了 CMake 3.15,在 Windows 上用 GNU 風格的命令行使用 Clang 編譯器成為可能。這也意味著可以用Mingw-w64工具鏈來使用Clang。
雖然可以用Mingw-w64(或MinGW)工具鏈來配置Clang,但如果你決定使用LLVM repo的Clang,它將無法正常工作。這是因為LLVM Clang for Windows是使用Microsoft Visual Studio構建的,所有內置的宏和包含的搜索路徑都是為使用Visual Studio而設置的。所以即使與MinGW工具鏈一起使用,它仍然會嘗試包含MSVC標準庫頭。
我們做了一些實驗,發現了一個可能的工作流程,就是使用CLion與MinGW工具鏈和Clang編譯器相結合。
這是我們的發現:
此Clang編譯器使用mingw-w64構建,并具有與該工具鏈相對應的路徑和宏。
現在我們準備建立CLion工具鏈。轉到Settings/Preferences | Build, Execution, Deployment | Toolchains:
配置了新的工具鏈后,就可以開始構建項目了。您可以使用默認的ld連接或設置lld有-DCMAKE_LINKER=lld。
使用Clang編譯器提供的高級工具
從理論上講,所有Clang工具都應該可以正常工作。但是,涉及編譯器-rt可能會出現問題。編譯器-rt是一組運行時庫,在Clang中使用消毒劑和配置文件是必需的,當前的compile_rt軟件包是使用MinGW構建的。但是Clang需要使用Clang和lld構建的編譯器。
在我們的案例中,我們想使用配置文件引導的優化。進行此工作的一種方法是獲取與MSYS2中的Clang版本完全相同的版本的editor-rt源代碼。這可能具有挑戰性,因此另一個解決方案是克隆LLVM monorepo并構建所需的工具。
對于-fprofile-instr-generate,僅構建compile -rt和llvm-profdata來合并探查器結果可能就足夠了。但是,要可靠地使用所有工具,最好也構建Clang和lld。
幸運的是,我們已經具有該構建所需的設置。
最后一步是將<msys2_path>/mingw64/lib\clang/<clang_version>/libwindows中的二進制文件替換為<compiler-rt_path>/cmake-build-release-mingw_clang/libwindows或<llvm_build_path>/lib/clang/<clang_version>/lib/windows中的庫。
使用Clang進行性能分析
有了正確的編譯器-rt庫,現在就可以使用與-fprofile-instr-generate / -fprofile-instr-use標志設置的相同的工具鏈。因為我們已經有了源代碼,所以讓我們為此實驗構建LLVM。我們還將使用-DLLVM_ENABLE_LTO = Thin進行更多優化。轉到Settings/Preferences | Build, Execution, Deployment | CMake:
使用此CMake配置,您可以構建Clang編譯器并使用它,例如,構建自己的項目。這將生成相關的探查器信息,稍后應將其與我們之前構建的工具llvm-profdata合并。使用合并的profile_merged.profdata文件,您最終可以構建Clang編譯器的優化版本:
使用自定義Clang和lld
要讓gcc風格的-fprofile-generate/-fprofile-use標志正確工作,需要改變Clang路徑,并將-DCMAKE_LINKER設置為新構建的ld。你還需要一些額外的LLVM技巧:-femulated-tls和鏈接pthread。
然后,應重復使用-fprofile-instr-generate / -fprofile-instr-use執行的所有步驟。
結論
現在可以在Windows上使用Clang,并且不需要安裝Microsoft Visual Studio!
我們希望在不久的將來,使用高級的clang工具將變得更加容易,并且不再需要手動構建。讓我們知道,如果您發現其他方法可以達到相同的效果!
今天的內容你學會了嗎?前往慧都網免費下 載最新版嘗試一下,并在評論分享你的想法。“慧都17周年慶”低價狂潮,省到尖叫最高立減2999元!低至797元!想要購買Clion正版授權的朋友歡迎。
JetBrain技術交流群現已開通,QQ搜索群號“786598704”或者掃描下方二維碼即可加入
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: