You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下使用clang/llvm编译Linux二进制报function not supported错误

错误原因

Windows版LLVM的lld链接器默认目标平台为Windows,未指定格式时会尝试生成PE格式可执行文件,与你编译得到的Linux ELF格式目标文件不匹配,同时默认输出文件名a.out不符合Windows环境下的默认输出规则,因此抛出功能不支持的错误。你现有的官方LLVM 13.0工具链无需更换,添加对应参数即可完成编译。

操作步骤
  1. 编译环节的命令无需调整,可正常生成符合要求的目标文件:
"C:\Program Files\LLVM\bin\clang.exe" -c slim.c -static -nostdlib --target=x86_64-pc-linux-gnu
  1. 链接环节添加参数指定目标格式和输出文件名:
"C:\Program Files\LLVM\bin\ld.lld.exe" -m elf_x86_64 slim.o -o slim

参数说明:

  • -m elf_x86_64:指定链接生成x86_64架构的Linux ELF格式可执行文件
  • -o slim:指定输出文件名为slim,避免默认a.out带来的Windows平台兼容问题

如果需要用clang一步完成编译链接,使用以下命令即可:

"C:\Program Files\LLVM\bin\clang.exe" slim.c -static -nostdlib --target=x86_64-pc-linux-gnu -fuse-ld=lld -o slim
验证方法

你可以用LLVM自带的readobj工具确认生成的文件格式正确:

"C:\Program Files\LLVM\bin\llvm-readobj.exe" -h slim

输出中显示OS/ABI: UNIX - Linux、Type: EXEC (Executable file)即为正常,将生成的slim文件放到Linux环境或WSL中即可直接运行。

内容的提问来源于stack exchange,提问作者Eric Stotch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:06:03