[问题] OpenGL 连结问题

楼主: shiburin (废文制造机)   2020-09-15 21:26:17
开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
OpenGL
问题(Question):
我按照底下网址的作法操作
https://www.khronos.org/opengl/wiki/MinGW
但是在编译时冒出一堆 undefined reference
喂入的资料(Input):
预期的正确结果(Expected Output):
认得 OpenGL 的函数
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
#include<GL/glut.h>
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
...下略
return 0;
}
补充说明(Supplement):
作者: Unity (Unity3D)   2020-09-15 21:59:00
通常有这种错误应该是 dll 没有正确 link 到
作者: Killercat (杀人猫™)   2020-09-15 22:00:00
library没吃到啊 看你要静态连还是动态连GCC要额外下link参数 wiki有写啊https://i.imgur.com/qivYV78.png然后上面的path也要设对如果参数没下错 你glut install那步看看是否做错了
作者: Lipraxde (Lipraxde)   2020-09-16 07:45:00
用 -Wl,--start-group、-Wl,--end-group 把 library 包起来看看Gcc 比较新的版本在找 symbol 的时候会按照 command line 下的顺序去找,如果要链结的 symbol 被摆在后面的位置的话会找不到 Orz...
作者: eye5002003 (下一夜)   2020-09-16 09:02:00
不清楚你的状况,印象中还需要gdi32这个lib
作者: nh60211as   2020-09-16 20:52:00
你还是先贴是什么undefined reference吧看是没有link到需要的还是link的顺序错误刚刚测试大概是你的glut32.lib太旧,试过用mingw 32bit 9.2.0重编过可以link跟执行,不过跑道一半被防毒隔离我照这个网址重编的https://reurl.cc/XkLeED我猜是以前的mingw不用__stdcall就可以编给window用这我不太熟可能要别人解答

Links booklink

Contact Us: admin [ a t ] ucptt.com