首页 > 解决方案 > 与 clang 链接时 MinGW ld 的警告

问题描述

我正在尝试使用clang作为编译驱动程序和MinGw ldWindows 上的链接器来执行一个简单的 c++ 程序。

我知道 windows 上的 clang 会寻找 MSVC 链接器link.exe,但link.exe不支持链接器脚本所以我正在尝试使用这个简单的程序 main.cpp 的不同选项

#include <iostream>
int main()
{
std::cout << "hello world";
return 0;

}

选项1

clang++ main.cpp -o main.exe -fuse-ld=lld-link

所以在这里我用名为的选项更改了链接器-fuse-ld=lld-link

当我执行 main.exe 时,我将毫无问题地获得预期的输出。

选项 2

clang++ main.cpp -o main.exe -fuse-ld=ld

我会收到以下错误

Warning: corrupt .drectve at end of def file
C:\MinGW\bin\ld.exe: warning: cannot find entry symbol faultlib:libcmt; defaulting to 00401000

即使这些是警告,也不会生成 main.exe。

链接时如何获取可执行文件MinGW linker ld

请提供任何解决方案。

标签: c++windowsmingwldclang++

解决方案


推荐阅读