我正在尝试使用C ++,QtCreator和CMake设置一个简单的opengl程序。 添加GLM的包含(OpenGL Mathematics,仅用于标头)后,QtCreator会显示各种“未命名为..模板”和“未命名为..成员”的错误。 尽管如此,代码编译没有问题。
#pragma once
#include <glm/glm.hpp>
#include <cassert>
#include <iostream>
#include <stdexcept>
#include <cmath>
#include <vector>
std::vector<int> pp;
int main() {
std::cout << "Hi" << std::endl;
}
在此玩具示例中,QtCreator指示:
错误:命名空间“ std”中没有名为“ vector”的模板
错误:命名空间“ std”中没有名为“ cout”的成员
它输出:
嗨
由于GLM仅是标头,因此我的CMakeLists.txt非常简单:
cmake_minimum_required(VERSION 2.8)
project(testgl)
add_executable(${PROJECT_NAME} "main.cpp")
包括glm的某些子部分(例如“ glm / vec2.hpp”)而不是“ glm / glm.hpp”可消除错误,而其他部分(例如“ glm / mat4x4.hpp”)则不会。
我在Linux上,使用gcc 8.2.0和GLM 0.9.9.0-1。 什么可以解释这种行为?