首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmake错误:"cc:错误:未识别的命令行选项‘-std=c++20’;您的意思是‘-std=c++2a’吗?“

cmake错误:"cc:错误:未识别的命令行选项‘-std=c++20’;您的意思是‘-std=c++2a’吗?“
EN

Stack Overflow用户
提问于 2022-06-27 11:39:11
回答 1查看 1.4K关注 0票数 1

我试图从源代码编译二进制文件,但在编译过程中始终会遇到错误。

代码语言:javascript
复制
$ cmake --build ./\[binary_dir\]/
[  0%] Building C object [binary_dir]/CMakeFiles/ZIPLIB.dir/extlibs/bzip2/bcompress.c.o
cc: error: unrecognized command line option ‘-std=c++20’; did you mean ‘-std=c++2a’?
make[2]: *** [[binary_dir]/CMakeFiles/ZIPLIB.dir/build.make:154: [binary_dir]/CMakeFiles/ZIPLIB.dir/extlibs/bzip2/bcompress.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:307: [binary_dir]/CMakeFiles/ZIPLIB.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

具体来说,"cc:错误:未识别的命令行选项‘-std=c++20’;您的意思是‘-std=c++2a’吗?。“

我怀疑这与使用不正确的gcc版本有关;我安装了多个版本,但相信我需要使用最新版本,或者至少是11.1.0版本。我安装了这些版本:

代码语言:javascript
复制
$ ls -l /usr/bin/gcc*
lrwxrwxrwx 1 root root  5 Mar 20  2020 /usr/bin/gcc -> gcc-9
lrwxrwxrwx 1 root root 23 May 29  2021 /usr/bin/gcc-10 -> x86_64-linux-gnu-gcc-10
lrwxrwxrwx 1 root root 23 Apr 28  2021 /usr/bin/gcc-11 -> x86_64-linux-gnu-gcc-11
lrwxrwxrwx 1 root root 22 Mar  9 12:57 /usr/bin/gcc-9 -> x86_64-linux-gnu-gcc-9
lrwxrwxrwx 1 root root  8 Mar 20  2020 /usr/bin/gcc-ar -> gcc-ar-9
lrwxrwxrwx 1 root root 26 May 29  2021 /usr/bin/gcc-ar-10 -> x86_64-linux-gnu-gcc-ar-10
lrwxrwxrwx 1 root root 26 Apr 28  2021 /usr/bin/gcc-ar-11 -> x86_64-linux-gnu-gcc-ar-11
lrwxrwxrwx 1 root root 25 Mar  9 12:57 /usr/bin/gcc-ar-9 -> x86_64-linux-gnu-gcc-ar-9
lrwxrwxrwx 1 root root  8 Mar 20  2020 /usr/bin/gcc-nm -> gcc-nm-9
lrwxrwxrwx 1 root root 26 May 29  2021 /usr/bin/gcc-nm-10 -> x86_64-linux-gnu-gcc-nm-10
lrwxrwxrwx 1 root root 26 Apr 28  2021 /usr/bin/gcc-nm-11 -> x86_64-linux-gnu-gcc-nm-11
lrwxrwxrwx 1 root root 25 Mar  9 12:57 /usr/bin/gcc-nm-9 -> x86_64-linux-gnu-gcc-nm-9
lrwxrwxrwx 1 root root 12 Mar 20  2020 /usr/bin/gcc-ranlib -> gcc-ranlib-9
lrwxrwxrwx 1 root root 30 May 29  2021 /usr/bin/gcc-ranlib-10 -> x86_64-linux-gnu-gcc-ranlib-10
lrwxrwxrwx 1 root root 30 Apr 28  2021 /usr/bin/gcc-ranlib-11 -> x86_64-linux-gnu-gcc-ranlib-11
lrwxrwxrwx 1 root root 29 Mar  9 12:57 /usr/bin/gcc-ranlib-9 -> x86_64-linux-gnu-gcc-ranlib-9

如果这就是问题所在,我该如何具体说明使用哪种版本的gcc?这是发生在makefile/cmakelist本身,作为我需要在我的环境中指定的路径,还是作为在调用cmake时应用的标志?

还是错误提出了另一种解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-27 11:45:12

假设您位于构建目录中:

您可以在运行对cmake的原始调用时设置CMAKE_C_COMPILER。

代码语言:javascript
复制
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc-11 ..
cmake --build .
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72771470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档