链接器命令失败,退出代码为1(使用-v查看调用)VisualStudio

时间:2015-11-30 16:05:26

标签: android-ndk visual-studio-2015 opengl-es-2.0

在尝试构建我的应用时,我遇到了非常恼人的错误。

这是完整的错误堆栈

Severity    Code    Description Project File    Line
Error       linker command failed with exit code 1 (use -v to see invocation)   PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\clang.exe  1
Error       undefined reference to 'glGetAttribLocation'    PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   70
Error       undefined reference to 'glCreateProgram'    PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   87
Error       undefined reference to 'glAttachShader' PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   91
Error       undefined reference to 'glAttachShader' PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   92
Error       undefined reference to 'glLinkProgram'  PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   93
Error       undefined reference to 'glGetProgramiv' PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   96
Error       undefined reference to 'glDeleteProgram'    PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   100
Error       undefined reference to 'glCreateShader' PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   111
Error       undefined reference to 'glShaderSource' PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   115
Error       undefined reference to 'glCompileShader'    PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   116
Error       undefined reference to 'glGetShaderiv'  PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   119
Error       undefined reference to 'glGetShaderiv'  PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   124
Error       undefined reference to 'glDeleteShader' PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   128
Error       undefined reference to 'glUseProgram'   PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   172
Error       undefined reference to 'glVertexAttribPointer'  PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   174
Error       undefined reference to 'glEnableVertexAttribArray'  PewPew.NativeActivity   c:\workspace\PewPew\PewPew\PewPew.NativeActivity\Renderer.cpp   175

好吧,它似乎与OpenGL调用有关,但我无法理解究竟是怎么回事。

我已经加入

#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <EGL/egl.h>
#include <GLES/gl.h>

但仍然没有运气。

关于我做错了什么的任何建议?

1 个答案:

答案 0 :(得分:2)

好吧,没关系,伙计们,我只是自己想出来了。

出现此问题是因为我正在尝试使用GLES 2.0函数,而不是GLES 1.0(在创建新的NativeActivity应用程序时默认设置)。因此,基本上您只需右键单击您的项目并转到属性 - &gt;链接器 - &gt;输入 - &gt;库依赖项并将GLESv1_CM更改为GLESv2。