【问题标题】:Unable to compile code using cmath无法使用 cmath 编译代码
【发布时间】:2017-08-01 16:41:44
【问题描述】:

我正在尝试使用 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 version 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

【问题讨论】:

  • 需要更多信息。 QT 中的什么类型的项目,什么版本,一些说明问题的最小代码?
  • 你遇到了什么编译问题?
  • 我用更多代码块更新了问题。
  • 编译器命令行是什么?
  • 添加了命令行。

标签: c++ linux qt


【解决方案1】:

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

INCLUDE_PATH+= /usr/include

这个错误导致#include_next 无法找到下一个包含。从我的 .pro 文件中删除它后,它编译时没有打嗝。

【讨论】:

    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多