使用来自 MSYS2 returns 的 LLVM-C api 退出代码 1,但使用 WSL 工作正常

using LLVM-C api from MSYS2 returns exit code 1, but using WSL works fine

我使用 MSYS2 安装了 llvm+clang,所有工具对我来说都很好,但是 LLVM-C 总是 returns 退出代码 1,这是我的示例代码:

#include <llvm-c/Core.h>
#include <stdlib.h>

int main(int argc, char const *argv[]) {
    LLVMModuleRef mod = LLVMModuleCreateWithName("my_module");

    LLVMPrintModuleToFile(mod, "my_module.ll", NULL);

    LLVMDisposeModule(mod);
    return 0;
}

它在 MSYS2 上编译,但它 returns 退出代码 1,并且不将模块写入文件,

但是当使用 WSL 编译时,它 returns 退出代码 0 并写入文件。

我正在使用这些 MSYS2 软件包:
https://packages.msys2.org/package/mingw-w64-x86_64-clang?repo=mingw64
https://packages.msys2.org/package/mingw-w64-x86_64-llvm?repo=mingw64

我没有尝试 C++ LLVM api,但我假设它也不起作用。

这里是命令 运行:
电源外壳:

$x = llvm-config --cflags --ldflags core --system-libs --libs
clang $x hello.c -fuse-ld=lld
./a.exe
echo $lastExitCode # returns 1

bash:

clang `llvm-config --cflags --ldflags core --system-libs --libs` hello.c
./a.out
cat my_module.ll

nvm 我修复了它,我的解决方案是我没有使用 powershell,而是使用了 MSYS2 (MinGW-w64) shell.