我已在Windows 10计算机上安装了clang。
$ clang --version
clang version 6.0.1 (tags/RELEASE_601/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
有了它,我可以编译C和C ++源代码并生成目标文件,并使用lib.exe创建它们的库。
当需要将其链接到二进制文件时,令我惊讶的是,clang正在创建lib / exp输出,而不是可执行文件?
为什么clang认为它应该创建一个库,而不是可执行文件?
clang++ -oarmor XWin/main.o -lSDL2main -lpi -ldblunt -lsino -lbase -L. -L ../../src/sino -L MSWin/libs/SDL/lib ../../src/Chipmunk2D/build.release/x64/Release/chipmunk.lib MSWin/libs/OpenAL/lib/OpenAL32.lib -lSDL2 -lOpenGL32
Creating library armor.lib and object armor.exp
LINK : fatal error LNK1561: entry point must be defined
clang++.exe: error: linker command failed with exit code 1561 (use -v to see invocation)
在UNIX中,clang默认会创建二进制文件,而不是库文件?
答案 0 :(得分:-1)
检查此链接- https://metricpanda.com/rival-fortress-update-27-compiling-with-clang-on-windows
当前在Windows上可以使用两种类型的Clang:香草LLVM Clang和带有Microsoft Codegen的Clang / C2。