如何使用 clang 创建 Windows 二进制文件



我已经在我的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 FilesLLVMbin

有了它,我可以编译 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 默认会创建二进制文件,而不是库吗?

检查此链接 - https://metricpanda.com/rival-fortress-update-27-compiling-with-clang-on-windows

目前有两种版本的Clang可以在Windows上运行:vanilla LLVM Clang和带有Microsoft Codegen的Clang/C2。

最新更新