在Linux上从Windows编译OpenGL应用程序

时间:2013-11-15 00:13:40

标签: c++ linux opengl g++

我的朋友制作了OpenGL图形引擎,但他正在使用Windows。我想用它编译项目。
我安装了所有必需的libs头文件,但现在问题是链接(Code :: Blocks中的项目)。我找到了/usr/lib/libSOIL.a/usr/local/lib/libglfw3.a的路径,但是:

  • C:\Program Files (x86)\CodeBlocks\MinGW\lib\libopengl32.a
  • C:\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编译它......

1 个答案:

答案 0 :(得分:1)

libopengl32 - > libGL.a

assimp - > libassimp.a?

你必须提供你正在编译它的Makefile。