Clang:找不到“cmath”文件

dom*_*120 6 c++ gcc clang cmath travis-ci

我正在用 clang 编译我的项目,但遇到了一个奇怪的错误:

[ 1%] Building CXX object CMakeFiles/tfs.dir/src/actions.cpp.o
In file included from /home/travis/build/dominique120/miniature-adventure/src/actions.cpp:20:
In file included from /home/travis/build/dominique120/miniature-adventure/src/otpch.h:27:
/home/travis/build/dominique120/miniature-adventure/src/definitions.h:39:10: fatal error:
'cmath' file not found
 #include <cmath>
 ^
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

我的 actions.cpp 第 20 行:

#include "otpch.h"
Run Code Online (Sandbox Code Playgroud)

otpch.h 第 27 行:

#include "definitions.h"
Run Code Online (Sandbox Code Playgroud)

Definitions.h 第 31 行:

#include <cmath>
Run Code Online (Sandbox Code Playgroud)

我做了一些编辑,但我不知道是什么导致了这个错误,在这里编辑: https: //github.com/dominique120/miniature-adventure/commits/master

PS:GCC 只是转储大量错误: https://travis-ci.org/dominique120/miniature-adventure/jobs/21905513

Bra*_*ram 9

我在安装 Ubuntu 22.04 时遇到了同样的问题libstdc++-11-dev

做完后:

sudo apt install libstdc++-12-dev
Run Code Online (Sandbox Code Playgroud)

...错误消失了。

它似乎只发生在 libstdc++-11 上?


Cal*_*laf 3

在谷歌搜索我在 macOS 上遇到的问题后,我看到了你的帖子。我正在分享一个解决方案,尽管它仅适用于 Mac 用户。

您很可能升级了 Xcode(或者它已为您升级)并且您继续使用旧的编译方案。

确定您的磁盘上实际存在以下哪个目录:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/
Run Code Online (Sandbox Code Playgroud)

并确保您的编译开关中有 -I 以及存在的目录。