c++ - 无法使用 cmath 编译代码

标签 c++ linux qt

我正在尝试使用 GLM 与 Vulkan/SDL 配合使用。我这两个都工作正常,但是当我选择构建时,它说

/usr/include/c++/7.1.1/cmath:45: error: math.h: No such file or directory
 #include_next <math.h>
               ^~~~~~~~

但是,如果我进入我的项目并正常包含它,它就可以正常工作。我尝试使用 G++ 而不是 GCC。我在 Linux(arch) 上并使用 QT Creator QT 版本 5.9.1 。我正在使用 Qmake,但没有 Qt 库。我使用的 GLM 代码是

glm::mat4 matrix;
glm::vec4 vec;
auto test = matrix * vec;

这些是包含内容

#include <vulkan/vulkan.h>
#include <SDL2/SDL.h>
#include <glm/vec4.hpp>
#include <glm/mat4x4.hpp>
#include <iostream>

编译器命令行是:

g++ -c -pipe -std=c++11 -g -std=gnu++11 -Wall -W -fPIC -DQT_QML_DEBUG -I../SDLProject -I. -isystem /usr/local/include -I../VulkanSDK/1.0.54.0/x86_64/include -isystem /usr/include -I/usr/lib/qt/mkspecs/linux-g++ -o main.o ../SDLProject/main.cpp

最佳答案

我解决了我自己的问题。我意识到我已经设置了一个

INCLUDE_PATH+= /usr/include

这个错误导致#include_next 无法找到下一个包含。从我的 .pro 文件中删除它后,它的编译没有出现任何问题。

关于c++ - 无法使用 cmath 编译代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45443374/

相关文章:

java - 我需要 JDK 还是只需要 JRE?

c++ - Qt 4.8 endInsert/RemoveRows 导致内存泄漏?

c++ - 为什么 qmake 将所有对象 (.o) 文件放到一个目录中?

c++ - Qt waitforbyteswriting() 函数中的信号

c++ - SFML 2 的链接抛出对 sf::Window 构造函数的 undefined reference

c++ - 如何在 C++ 中读取这个 XML 文件?非标准(读取) "INVALID"XML

c++ - 如何在 Qt 中做一个扩展到他的布局之上的小部件

c++ - 使用 cmake 构建 tensorflow 服务客户端

c - Glade 布局在编译/GTK_IS_APPLICATION 断言失败时不反射(reflect)

linux - 如何将文件输出放入电子邮件正文而不是附件?