C++ 代码::Blocks linux glext.h“;引用uint64“不明确”;

C++ 代码::Blocks linux glext.h“;引用uint64“不明确”;,c++,linux,opengl,codeblocks,glfw,C++,Linux,Opengl,Codeblocks,Glfw,我正在使用Xubuntu 14.04中的Code::Blocks制作一个OpenGL应用程序,并从源代码处安装了GLFW3。在eclipse CDT中,它可以工作,但在这个IDE中,编译时会显示一条错误消息: [...] /usr/include/GL/glext.h|1404|error: reference to ‘uint64_t’ is ambiguous| /usr/include/stdint.h|55|note: candidates are: typedef long unsig

我正在使用Xubuntu 14.04中的Code::Blocks制作一个OpenGL应用程序,并从源代码处安装了GLFW3。在eclipse CDT中,它可以工作,但在这个IDE中,编译时会显示一条错误消息:

[...]
/usr/include/GL/glext.h|1404|error: reference to ‘uint64_t’ is ambiguous|
/usr/include/stdint.h|55|note: candidates are: typedef long unsigned int uint64_t|
third_party/glm/fwd.hpp|907|note:                 typedef glm::detail::uint64                 glm::uint64_t|
/usr/include/GL/glext.h|1404|error: ‘uint64_t’ does not name a type|
/usr/include/GL/glext.h|1405|error: reference to ‘int64_t’ is ambiguous|
/usr/include/x86_64-linux-gnu/sys/types.h|197|note: candidates are: typedef long int int64_t|
third_party/glm/fwd.hpp|305|note:                 typedef glm::detail::int64 glm::int64_t|
/usr/include/GL/glext.h|1405|error: ‘int64_t’ does not name a type|
/usr/include/GL/glext.h|1478|error: ‘GLuint64’ has not been declared|
/usr/include/GL/glext.h|1479|error: ‘GLuint64’ has not been declared|
/usr/include/GL/glext.h|1480|error: ‘GLint64’ has not been declared|
/usr/include/GL/glext.h|1482|error: ‘GLint64’ has not been declared|
/usr/include/GL/glext.h|1483|error: ‘GLint64’ has not been declared|
/usr/include/GL/glext.h|1547|error: ‘GLint64’ has not been declared|
/usr/include/GL/glext.h|1548|error: ‘GLuint64’ has not been declared|
/usr/include/GL/glext.h|2447|error: ‘GLint64’ has not been declared|
/usr/include/GL/glext.h|2591|error: reference to ‘uint64_t’ is ambiguous|
/usr/include/stdint.h|55|note: candidates are: typedef long unsigned int uint64_t|
third_party/glm/fwd.hpp|907|note:                 typedef glm::detail::uint64 glm::uint64_t|
/usr/include/GL/glext.h|2591|error: ‘uint64_t’ does not name a type|
/usr/include/GL/glext.h|2593|error: typedef ‘GLuint64’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2593|error: ‘PFNGLGETTEXTUREHANDLEARBPROC’ was not declared in this scope|
/usr/include/GL/glext.h|2594|error: typedef ‘GLuint64’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2594|error: ‘PFNGLGETTEXTURESAMPLERHANDLEARBPROC’ was not declared in this scope|
/usr/include/GL/glext.h|2595|error: typedef ‘PFNGLMAKETEXTUREHANDLERESIDENTARBPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2595|error: ‘GLuint64’ was not declared in this scope|
/usr/include/GL/glext.h|2596|error: typedef ‘PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2596|error: ‘GLuint64’ was not declared in this scope|
/usr/include/GL/glext.h|2597|error: typedef ‘GLuint64’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2597|error: ‘PFNGLGETIMAGEHANDLEARBPROC’ was not declared in this scope|
/usr/include/GL/glext.h|2598|error: typedef ‘PFNGLMAKEIMAGEHANDLERESIDENTARBPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2598|error: ‘GLuint64’ was not declared in this scope|
/usr/include/GL/glext.h|2598|error: expected primary-expression before ‘access’|
/usr/include/GL/glext.h|2599|error: typedef ‘PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2599|error: ‘GLuint64’ was not declared in this scope|
/usr/include/GL/glext.h|2600|error: ‘GLuint64’ has not been declared|
/usr/include/GL/glext.h|2601|error: ‘GLuint64’ does not name a type|
/usr/include/GL/glext.h|2602|error: ‘GLuint64’ has not been declared|
/usr/include/GL/glext.h|2603|error: ‘GLuint64’ does not name a type|
/usr/include/GL/glext.h|2604|error: typedef ‘PFNGLISTEXTUREHANDLERESIDENTARBPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2604|error: ‘GLuint64’ was not declared in this scope|
/usr/include/GL/glext.h|2605|error: typedef ‘PFNGLISIMAGEHANDLERESIDENTARBPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|2605|error: ‘GLuint64’ was not declared in this scope|
/usr/include/GL/glext.h|2606|error: ‘GLuint64EXT’ has not been declared|
/usr/include/GL/glext.h|2607|error: ‘GLuint64EXT’ does not name a type|
/usr/include/GL/glext.h|2608|error: ‘GLuint64EXT’ has not been declared|
/usr/include/GL/glext.h|7547|error: ‘GLint64’ has not been declared|
/usr/include/GL/glext.h|7548|error: ‘GLuint64’ has not been declared|
/usr/include/GL/glext.h|8235|error: typedef ‘GLuint64’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|8235|error: ‘PFNGLGETTEXTUREHANDLENVPROC’ was not declared in this scope|
/usr/include/GL/glext.h|8236|error: typedef ‘GLuint64’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|8236|error: ‘PFNGLGETTEXTURESAMPLERHANDLENVPROC’ was not declared in this scope|
/usr/include/GL/glext.h|8237|error: typedef ‘PFNGLMAKETEXTUREHANDLERESIDENTNVPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|8237|error: ‘GLuint64’ was not declared in this scope|
/usr/include/GL/glext.h|8238|error: typedef ‘PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC’ is initialized (use decltype instead)|
/usr/include/GL/glext.h|8238|error: ‘GLuint64’ was not declared in this scope|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
编译器是GNUGCC,代码是c++11。链接库的顺序如下:

X11
pthread
Xrandr
Xi
Xxf86vm
rt
m
GL
链接器搜索目录:

/usr/lib
/usr/local/lib
/usr/include           *Tried in Compiler search directories too
/usr/local/include     *Tried in Compiler search directories too
如果你还需要什么,尽管问。 PD:我没有直接包括GL标题,glfw3为我做了这件事。

似乎,在您的代码(或glfw3的代码)中,您有如下内容:

using namespace glm::detail;
这在您的命名空间中引入了
uint64\t
的其他定义。如果要指定要使用的类型,可以使用名称空间删除
或完全指定要使用的类型;它可能是
::uint64\u t
glm::detail::uint64\u t


作为另一种解决方案,请尝试更改包含文件的顺序。

此问题与链接无关。我最好让我们看看你的源代码。