我正在尝试使用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 轮候册, - 出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 :(文本+为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”的引用
collect2.exe:错误:ld返回1退出状态
忍者:构建已停止:子命令失败。
没有它,我会更进一步,但我得到了这个:http://pastebin.com/zeMViHzA
项目/ libcxx / CMakeLists.txt的CMake错误:423(消息):
需要C ++ 11或更高版本,但编译器不支持c ++ 11
如何摆脱cmake测试的“WinMain未定义参考”?
编辑:gcc版本:6.2.0