【发布时间】:2016-01-06 15:29:48
【问题描述】:
我正在使用 OpenGL 在 C++ 中创建模型加载器/查看器,并尝试将我的代码从 Windows(Visual Studio)移动到 Ubuntu。
使用 GDB,我得到一个分段错误:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
即使没有调用 glut 函数,段错误仍然存在。只有当我真正从代码中删除任何关于过剩的内容时,这种情况才会消失。
据我了解,Microsoft 和 GNU 编译器之间存在差异,以及两个操作系统之间某些库的一般行为不同。然而,令人难以置信的是,我在程序一开始就遇到了段错误,而不是编译错误。
我已经测试过 glut 可以与其他程序一起使用,请使用适用于 linux 的 glut 标头 (#include ) 并确保在编译时包含 glut 标志:
main: main.o g++ -o main main.o -lGL -lGLU -lglut -std=gnu++11
main.o: main.cpp loader.h geom.h g++ -c main.cpp -lGL -lGLU -lglut
-std=gnu++11
【问题讨论】:
-
发布MCVE 和相关的回溯。
-
你使用 GLUT 吗?如果没有,请摆脱它。