簡體   English   中英

如何用 clang 構建 clang?

[英]How to build clang with clang?

我已經成功地使用 MSVC 和 MinGW 構建了 clang(3.2)。 但我認為這不是“純粹的”鏗鏘聲。 那么有人可以給我一些關於如何使用clang構建clang(Windows / Linux)的說明或材料嗎? 我們可以獨立使用clang嗎(不依賴於GCC或MSVC)。 謝謝大家!

好吧得到像3.1這樣的舊版鏗鏘聲。 (您幾乎可以安裝為您的操作系統預編譯的任何版本)

獲取像3.2這樣的新版本的來源。

然后(我喜歡cmake +忍者( http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html ))

如果你將llvm源解壓縮到〜/ llvm_source / llvm

cd ~/llvm_source
mkdir build
cd build
CXX=clang++ CC=clang cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release
ninja

如果你想要它

CXX=clang++ CC=clang cmake ../llvm -DCMAKE_BUILD_TYPE=Release
make

而已。

玩得開心。

目前的方法(截至2月27日')似乎如下,

cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++  $LLVM_SRC_DIR # -G Ninja

其中CMAKE_C_COMPILER和CMAKE_CXX_COMPILER是由-D定義的CMake變量。 不知何故,這些變量不會出現在llvm_src / CMakeLists.txt中

用clang制作clang時,你會與已經存在的內置函數定義和尚未重新定義的定義重合——編譯器陷入雙重意識的煩惱! 我有下一個:


clang/Basic/BuiltinsX86.def:1907:1: 注意:之前的定義在這里 TARGET_HEADER_BUILTIN(_ReadWriteBarrier, "v", "nh", "intrin.h", ALL_MS_LANGUAGES, "")

clang\CodeGen\code\CGBuiltin.cpp:638:1: error: reference to '_bittest' is ambiguous BitTest BitTest::decodeBitTestBuiltin(unsigned BuiltinID) { ^ include\winnt.h:2236:17: 注意:從宏擴展' BitTest' #define BitTest _bittest ^ include\psdk_inc/intrin-impl.h:1707:16: 注意:通過名稱查找找到的候選是 '_bittest' __buildbittest(_bittest, __LONG32, "l", "I") ^ clang\CodeGen \code\CGBuiltin.cpp:620:8:注意:通過名稱查找找到的候選是 '(匿名命名空間)::_bit test' struct BitTest { ^ include\winnt.h:2236:17: 注意:從宏 'BitTest 擴展' #define BitTest _bittest ^ clang\CodeGen\code\CGBuiltin.cpp:696:45:錯誤:對 '_bittest' 的引用不明確 BitTest BT,^ include\winnt.h:2236:17:注意:從宏 'BitTest 擴展' #define BitTest _bittest ^ include\psdk_inc/intrin-impl.h:1707:16: 注意:通過名稱查找找到的候選是 '_bittest' __buildbittest(_bittest, __LONG32, "l", "I")


等等等等……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM