gpt4 book ai didi

c - 编译 C 程序时如何解决 Clang 中的链接器问题?

转载 作者:行者123 更新时间:2023-11-30 14:38:00 25 4
gpt4 key购买 nike

我正在尝试使用 Clang 编译 C 程序。构建时,它显示错误消息链接器命令无法执行,退出代码为 1。

我该如何解决这个问题?

我使用的是 Windows 10。我已安装最新版本的 LLVM 。我正在尝试使用命令行编译程序。

// main.c
#include <stdio.h>

int main()
{
printf("hello");
return 0;
}

我正在使用这个命令

clang main.c  -o main.exe -v

我收到一个错误:

   "C:\\Program Files\\LLVM\\bin\\clang.exe" -cc1 -triple x86_64-pc-windows-msvc19.11.0 -emit-obj -mrelax-all -mincremental-linker-compatible -disable-free -disable-llvm-verifier -discard-value-names -main-file-name main.c -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -momit-leaf-frame-pointer -v -resource-dir "C:\\Program Files\\LLVM\\lib\\clang\\7.1.0" -internal-isystem "C:\\Program Files\\LLVM\\lib\\clang\\7.1.0\\include" -internal-isystem "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\WDExpress\\VC\\Tools\\MSVC\\14.16.27023\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.17763.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\winrt" -fdebug-compilation-dir "C:\\Users\\amith.ks\\Desktop" -ferror-limit 19 -fmessage-length 120 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.11 -fdelayed-template-parsing -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o "C:\\Users\\amith.ks\\AppData\\Local\\Temp\\main-ecf8c2.o" -x c main.c
clang -cc1 version 7.1.0 based upon LLVM 7.1.0 default target x86_64-pc-win32
#include "..." search starts here:
#include <...> search starts here:
C:\Program Files\LLVM\lib\clang\7.1.0\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Tools\MSVC\14.16.27023\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt
End of search list.
"link.exe" -out:main.exe -defaultlib:libcmt "-libpath:C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\WDExpress\\VC\\Tools\\MSVC\\14.16.27023\\lib\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\ucrt\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\um\\x64" -nologo "C:\\Users\\amith.ks\\AppData\\Local\\Temp\\main-ecf8c2.o"

clang.exe: error: unable to execute command: program not executable
clang.exe: error: linker command failed with exit code 1 (use -v to see invocation)

我无法得到该链接器错误。它在寻找什么?

最佳答案

link.exe 是 Microsoft Visual C++ (MSVC) 链接器。它不附带 Clang,您应该通过安装 Visual C++ 来安装它。

请注意,link.exe 不一定需要位于 PATH 中,clang 似乎具有一些自动检测功能。

如果它已经安装,则可能意味着 clang 无法找到您的 MSVC 安装。在这种情况下,使用 MSVC 安装目录更新 PATH,或者在使用 Clang 之前调用 vcvarsall.bat 可以解决您的问题。

关于c - 编译 C 程序时如何解决 Clang 中的链接器问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56897242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com