1

我已经从http://releases.llvm.org/download.html 和 mingw 从https://sourceforge.net/projects/mingw-w64/在 Windows 10 上下载并安装了 clang

我正在尝试使用 clang/lld/mingw 编译一个非常基本的 C 程序:

int main(int argc, char* argv[argc + 1])
{
  return 0;
}

要编译我调用:

clang.exe -target x86_64-windows-gnu -fuse-ld=lld.exe -g -gcodeview -Wl,/debug,/pdb:example.pdb example.c -o example.exe

这会创建一个在 mainCRTStartup 启动时出错的 exe(准确地说是 __security_init_cookie)。

但是,使用 binutils 中的默认 ld 运行是成功的:

clang.exe -target x86_64-windows-gnu example.c -o example.exe

请注意,我希望使用 mingw 标头,而不是 msvc。

我总共尝试过:

  • x86_64-8.1.0-posix-seh-rt_v6-rev0
  • x86_64-7.3.0-posix-seh-rt_v5-rev0
  • x86_64-8.1.0-win32-seh-rt_v6-rev0
  • x86_64-8.1.0-win32-sjlj-rt_v6-rev0

没有任何运气产生一个功能程序。

所以我想知道,我在这里做错了什么明显的事情吗?

编辑:我也尝试过使用 msys2 无济于事。具体来说:

pacman -S mingw-w64-x86_64-clang mingw-w64-x86_64-lld
4

1 回答 1

1

根据https://bugs.llvm.org/show_bug.cgi?id=40568

从普通 mingw 安装链接到 mingw 导入库是一项新功能,首次出现在 LLD 8 中。

除非想编译 lld 的预发布版本,否则必须等待 llvm 8.0.0 的二进制发布。这将有望在三月的某个时候。

于 2019-02-07T21:42:04.773 回答