【问题标题】:Can't make project, unrecognized command line option libc++ error无法制作项目,无法识别的命令行选项 libc++ 错误
【发布时间】:2014-09-23 00:55:20
【问题描述】:

我在尝试 Make this Azteroids project: "c++: error: unrecognized command line option ‘-stdlib=libc++'" 时不断收到此错误消息

根据我在网上看到的情况,人们说这是一个 Clang 标志,而 C++11 标志看起来不同。我的意思是,我不反对,但是创建 Azteroids 可执行文件的说明非常简单,而且 CMake 似乎可以识别 C++11 支持。

这是该项目中 cmake 系统的缺点还是我缺少依赖项或步骤?我不明白。是的,我见过类似的问题。

有关 CMake 和 Make 输出的更多信息,请参阅 this Pastebin

【问题讨论】:

  • Clang 和 C++11 不是对立的。

标签: c++ linux c++11 compilation makefile


【解决方案1】:

该输出中没有任何内容表明这里完全涉及clang。这可能是问题所在。

看起来-stdlib=libc++ 是一个你的GNU c++ 二进制文件不理解的clang 标志。这些标志是由该项目的 cmake 配置手动添加的。这意味着它不会在没有叮当声的情况下工作。因此,要么删除这些标志,要么安装 clang 并配置 cmake 以使用它。

【讨论】:

  • 喜欢 sudo update-alternatives --config c++ 命令并将其更改为 Clang。现在我得到一个 OpenGL/gl.h not found 错误,尽管它已安装。很好的提示,现在只是尝试让下一步工作。
  • @Stradigos 你有OpenGL 标头/等吗?安装了吗?
  • 是的。我猜 /usr/include 中的文件夹只是“GL”而不是“OpenGL”。有点痛苦,但我用“GL/gl.h”替换了每个包含行,它编译得很好。我想一个更优雅的解决方案应该是在 /usr/include 中创建一个软链接,但是很好。
  • 不,系统目录中的符号链接从不正确答案。
  • 令人沮丧的是,一个包将这个文件夹命名为 GL,而另一个将它命名为 OpenGL。如果没有同一个文件夹的两个完整副本,我怎么能取悦两者?
猜你喜欢
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多