我正试图在windows(10)上用mingw-w64构建clang,所以我遵循了这个教程:https://here-be-braces.com/blog/llvm-clang-on-windows-mingw-revisited但是cmake不认识gcc作为C 11编译器 . 我用这个命令运行cmake:

cmake C:\llvm -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_TOOLS=ON -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_BUILD_TESTS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=ON -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS="-IC:/mingw64/x86_64-w64-mingw32/include" -DGCC_INSTALL_PREFIX=%syspath% -DCMAKE_INSTALL_PREFIX=%syspath% -DCMAKE_EXE_LINKER_FLAGS="-lmingw32 -static-libgcc -static-libstdc++ -static -lstdc++ -lm -lpthread  -lgcc -lmsvcrt -lmoldname -lgcc_eh -lkernel32 -luser32 -ladvapi32 -liconv -lmingwex" -DBUILD_SHARED_LIBS=OFF -DLLVM_PARALLEL_COMPILE_JOBS=2 -DLLVM_PARALLEL_LINK_JOBS=2 -DCMAKE_INCLUDE_PATH="C:/mingw64/x86_64-w64-mingw32/include" -DGCC_INSTALL_PREFIX="C:/mingw64" -DCMAKE_LIBRARY_PATH="C:/mingw64/x86_64-w64-mingw32/lib"

我用“gcc -v test.c -Wl, - verbose”来查看了librairies列表,test.c只是一个经典的hello世界 . 但是使用libmingw32,我收到了这个错误:

cmd.exe / C“cd . && C:\ mingw64 \ bin \ gcc.exe -lmingw32 -static-libgcc -static-libstdc -static -lstdc -lm -lpthread -lgcc -lmsvcrt -lmoldname -lgcc_eh -lkernel32 -luser32 -ladvapi32 -liconv -lmingwex CMakeFiles / cmTC_3b639.dir / testCCompiler.c.obj -o cmTC_3b639.exe -Wl, - out-implib,libcmTC_3b639.dll.a -Wl, - major-image-version,0, - -minor-image-version,0 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd . “ CMakeFiles / cmTC_3b639.dir / testCCompiler.c.obj:testCCompiler.c :( . text 0x0):main'的多重定义C:/ mingw64 / bin /../ lib / gcc / x86_64-w64-mingw32 / 6.2 . 0 /../../../../ x86_64-w64-mingw32 / lib /../ lib \ libmingw32.a(lib64_libmingw32_a-crt0_c.o):crt0_c.c :( . text.startup 0x0):首先在这里定义C:/ mingw64 / bin /../ lib / gcc / x86_64-w64-mingw32 / 6.2.0 /../../../../ x86_64-w64-mingw32 / lib /../ lib \ libmingw32.a(lib64_libmingw32_a-crt0_c.o):crt0_c.c :( . text.startup 0x2e):未定义引用WinMain'colle2.exe:错误:ld返回1退出状态ninja:build stopped:子命令失败 .

没有它,我会进一步,但我明白了:http://pastebin.com/zeMViHzA

项目/ libcxx / CMakeLists.txt中的CMake错误:423(消息):需要C 11或更高版本,但编译器不支持c 11

如何摆脱cmake测试的“WinMain未定义参考”?

编辑:gcc版本:6.2.0