【问题标题】:c++: error: unrecognized command-line option ‘-target’c++:错误:无法识别的命令行选项“-target”
【发布时间】:2022-01-05 09:49:49
【问题描述】:

我正在编译使用make 制作的程序,但出现此错误

c++: error: unrecognized command-line option ‘-target’
make[3]: *** [libs/system/CMakeFiles/system.dir/build.make:76: libs/system/CMakeFiles/system.dir/src/system/syscalls.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:504: libs/system/CMakeFiles/system.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:243: CMakeFiles/image-uefi.dir/rule] Error 2
make: *** [Makefile:137: image-uefi] Error 2

我正在运行安装了 Clang-13、CMake 和所有基本开发的 Arch Linux。

任何帮助将不胜感激,请不要居高临下

产生错误的行是这样的,它应该是有问题的 linux,因为有问题的错误(顶行)抱怨 -target 无法识别。

cd /home/user/toy-kernel/build/libs/system && /usr/bin/c++ -I/home/user/toy-kernel/libs/system/src -target x86_64-none-elf -mcmodel=kernel -fno-exceptions -fno-use-cxa-atexit -fno-rtti -nostdlib -ffreestanding -fno-threadsafe-statics -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-sse4.1 -mno-sse4.2 -mno-sse4a -mno-3dnow -mno-3dnowa -std=gnu++20 -MD -MT libs/system/CMakeFiles/system.dir/src/system/syscalls.cpp.o -MF CMakeFiles/system.dir/src/system/syscalls.cpp.o.d -o CMakeFiles/system.dir/src/system/syscalls.cpp.o -c /home/user/toy-kernel/libs/system/src/system/syscalls.cpp

【问题讨论】:

  • edit您的问题并提供失败的实际编译行。 make VERBOSE=1。同一个文件的工作文件也很好。
  • 这里!:cd /home/user/toy-kernel/build/libs/system && /usr/bin/c++ -I/home/user/toy-kernel/libs/system/src -目标 x86_64-none-elf -mcmodel=kernel -fno-exceptions -fno-use-cxa-atexit -fno-rtti -nostdlib -ffreestanding -fno-threadsafe-statics -mno-mmx -mno-sse -mno-sse2 -mno -sse3 -mno-sse4.1 -mno-sse4.2 -mno-sse4a -mno-3dnow -mno-3dnowa -std=gnu++20 -MD -MT libs/system/CMakeFiles/system.dir/src/system /syscalls.cpp.o -MF CMakeFiles/system.dir/src/system/syscalls.cpp.od -o CMakeFiles/system.dir/src/system/syscalls.cpp.o -c /home/user/toy-kernel /libs/system/src/system/syscalls.cpp
  • 不要发表评论,edit 你的问题。并确保你提供了工作和失败的命令行(标签是哪个)。
  • 你确定/usr/bin/c++是clang 13吗?执行/usr/bin/c++ --version 或任何可以打印其版本的操作。
  • 大声笑,是的,我跑了 clang++ --version 和 c++ --version,它的 clang 13

标签: c++ cmake clang++


【解决方案1】:

就我而言,c++ 是 g++ 编译器而不是 clang 编译器,如果您遇到类似问题,请尝试更新 g++ 或 clang++(在较旧的 Mac 上,您可能需要使用 brew 来安装它们)或进入您的/usr/bin 目录(对于 mac 和 linux,我从未使用过 windows 无法帮助您)并替换文件(尽管只有在您绝对知道自己在做什么的情况下才这样做!)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-07
    • 2016-07-14
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2016-02-10
    • 2017-04-09
    相关资源
    最近更新 更多