错误
错误C2668:' sqrt' :模糊调用重载函数c:\ program files \ assimp \ include \ assimp \ vector3.inl
当我包含' scene.h'在主cpp文件中:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
GLFWwindow* window;
#include <glm/glm.hpp>
#include <glm/gtx/transform.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <assimp/Importer.hpp>
#include <assimp/scene.h>
#include <assimp/postprocess.h>
#define MESH_FILE "cube.obj"
using namespace glm;
#include "common/shader.hpp"
#include "common/controls.hpp"
我无法获得与之冲突的内容?
答案 0 :(得分:1)
.cpp文件中有一个命名空间 using-directive :
using namespace glm;
这意味着glm
命名空间中的所有内容都成为&#34; global&#34;的一部分。命名空间;所以你污染全局命名空间。
因此,标准C sqrt()
函数(位于全局命名空间中)和glm::sqrt()
之间可能存在某种形式的冲突,而sqrt
是&#34;提升的&#34;全球glm::
。
您可能希望删除前面提到的命名空间using-directive(当您想要引用该命名空间中的类和函数时,只需添加{{1}}命名空间前缀)。