【发布时间】:2013-11-28 06:09:42
【问题描述】:
我的朋友制作了 OpenGL 图形引擎,但他在 Windows 上工作。我想用它编译项目。
我安装了所有必需的带有标题的库,但现在问题在于链接(代码中的项目::块)。我找到了/usr/lib/libSOIL.a 和/usr/local/lib/libglfw3.a 的路径,但是呢:
C:\Program Files (x86)\CodeBlocks\MinGW\lib\libopengl32.aC:\Program Files (x86)\CodeBlocks\MinGW\lib\assimp_debug-dll_win32\assimp.lib
另外,我必须在项目文件中修改什么来编译它?它需要:glfw3, glm, gl3w.h, assimp, SOIL(这是我从 .hpp 文件中得到的)。我安装了所有标题(下载的源和make && make install)...
我尝试使用 g++ 从终端编译它,但我不知道库的开关。
目前情况:
$ g++ Camera.o Entity.o Frustum.o gl3w.o Light.o Material.o Mesh.o Model.o ModelPart.o Shader.o Texture.o Utilities.o ../main.o -o main -L/usr/local/lib/libglfw3.a -lX11 -lXext -lXt -lSM -lGLU -lglut -lSOIL
/usr/bin/ld: gl3w.o: 未定义对符号“glXGetProcAddress”的引用
/usr/bin/ld:注意:“glXGetProcAddress”在 DSO /usr/lib/nvidia-313-updates/libGL.so.1 中定义,因此请尝试将其添加到链接器命令行
/usr/lib/nvidia-313-updates/libGL.so.1:无法读取符号:无效操作
collect2:错误:ld 返回 1 个退出状态
(我知道我在命令行中添加了太多库)
编辑
添加了-lGL和-ldl,出现了一些问题。现在,我将尝试使用 makefile 编译它...
【问题讨论】:
-
我认为您的问题不在于如何在 Linux 中使用 OpenGL 进行编译,而是普遍缺乏对 GCC 构建工具链在 Linux 中的工作方式的理解。只是将 Makefile 扔进去并不能真正解决这个问题。
-
现在解决了,只是库等方面的大量错误。此外,Makefile 确实是比 C::B 项目更好的解决方案...