I allready build clang(3.2) with MSVC and MinGW succesfully. But I think it's not the "purely" clang. So could someone give me some instructions or materials about how to use clang to build clang(Windows/Linux)? And could we use clang indepently(Not depent on GCC or MSVC). Thanks all!
Well get an older version of clang like 3.1. (You can pretty much install any version that comes precompiled for your OS)
Get the sources for a newer version like 3.2.
Then (i like cmake+ninja ( http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html ))
if you unpacked llvm source to ~/llvm_source/llvm
cd ~/llvm_source
mkdir build
cd build
CXX=clang++ CC=clang cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release
ninja
If you want it for make
CXX=clang++ CC=clang cmake ../llvm -DCMAKE_BUILD_TYPE=Release
make
Thats it.
Have fun.
The current method (as of 27th Feb 17') seems to be as follows,
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ $LLVM_SRC_DIR # -G Ninja
Where CMAKE_C_COMPILER and CMAKE_CXX_COMPILER are CMake variables define by -D
. Somehow, these variables don't appear in llvm_src/CMakeLists.txt
When making clang with clang, you will coincide with the already existing definitions of builtin functions and those which yet to be defined again - the compiler gets into troubles of doubled consciousness!!! I've got the next:
clang/Basic/BuiltinsX86.def:1907:1: note: previous definition is here 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: note: expanded from macro 'BitTest' #define BitTest _bittest ^ include\psdk_inc/intrin-impl.h:1707:16: note: candidate found by name lookup is '_bittest' __buildbittest(_bittest, __LONG32, "l", "I") ^ clang\CodeGen\code\CGBuiltin.cpp:620:8: note: candidate found by name lookup is '(anonymous namespace)::_bit test' struct BitTest { ^ include\winnt.h:2236:17: note: expanded from macro 'BitTest' #define BitTest _bittest ^ clang\CodeGen\code\CGBuiltin.cpp:696:45: error: reference to '_bittest' is ambiguous BitTest BT, ^ include\winnt.h:2236:17: note: expanded from macro 'BitTest' #define BitTest _bittest ^ include\psdk_inc/intrin-impl.h:1707:16: note: candidate found by name lookup is '_bittest' __buildbittest(_bittest, __LONG32, "l", "I")
And so on and on ...
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.