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

Arch Linux使用make编译时报c++不识别‘-target’命令行选项错误

问题根因

-target是LLVM/Clang专属的编译参数,GCC不支持该参数。你当前Arch环境中调用的/usr/bin/c++实际是软链接到GCC的g编译器,因此会报参数不识别错误。之前Fedora环境能正常编译,是因为你在Fedora的CMake配置中指定了使用Clang作为C编译器,迁移到Arch后未做对应配置。

解决方案
  • 方案一:指定Clang作为编译器(兼容性最高,无需修改现有编译配置)
    清空当前build目录后,重新执行CMake配置时追加编译器指定参数:
    cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
    
    配置完成后正常执行make即可完成编译。
  • 方案二:使用GCC交叉编译链编译(适合需要用GCC编译裸机/内核程序的场景)
    1. 先安装对应架构的交叉编译工具包:
    sudo pacman -S x86_64-none-elf-gcc x86_64-none-elf-binutils
    
    1. 清空build目录,重新配置CMake指定交叉编译器:
    cmake -DCMAKE_C_COMPILER=x86_64-none-elf-gcc -DCMAKE_CXX_COMPILER=x86_64-none-elf-g++ ..
    
    1. 修改项目CMakeLists.txt,删除-target x86_64-none-elf编译参数,GCC交叉编译器默认目标为x86_64-none-elf,无需额外指定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:45:07