首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EGL链接器错误

EGL链接器错误
EN

Stack Overflow用户
提问于 2015-02-22 14:08:31
回答 2查看 5.7K关注 0票数 5

我正在尝试使用Ubuntu可信系统上的g++ 4.9.1链接一个非常简单的GLES2和EGL程序。我使用的是mesa库。

我收到了EGL函数的链接器错误:

代码语言:javascript
复制
test.cpp:(.text+0x342): undefined reference to `eglGetDisplay'
test.cpp:(.text+0x389): undefined reference to `eglInitialize'
test.cpp:(.text+0x40f): undefined reference to `eglCreateContext'
test.cpp:(.text+0x458): undefined reference to `eglCreatePbufferSurface'
test.cpp:(.text+0x49e): undefined reference to `eglMakeCurrent'

我正在使用以下命令编译test.cpp

代码语言:javascript
复制
g++ -std=c++0x -Wall -Werror -lEGL -lGLESv2 -o test test.cpp 

我试着改变了库的顺序,这有时很重要,但我得到了同样的问题。这里有没有我遗漏的图书馆?

我已经运行了readelf -Ws /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so,并且定义了所有需要的函数。

EN

回答 2

Stack Overflow用户

发布于 2017-10-18 20:22:59

您应该将库放在命令行的末尾

代码语言:javascript
复制
g++ -std=c++0x -Wall -Werror -o test test.cpp -lEGL -lGLESv2
票数 5
EN

Stack Overflow用户

发布于 2015-02-22 14:39:23

我设法修复了这个问题,方法是将C++文件编译为目标文件,然后作为单独的步骤进行链接。我不确定为什么这样做能行得通,而单行编译却不行。

代码语言:javascript
复制
g++ -std=c++0x -Wall -Werror -c -o test.o test.cpp 
g++ -o test test.o -lGLESv2 -lEGL

我已经向社区提出了这个问题,试图找出原因:Single-command compile and link fails, separate steps work

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28655099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档