Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Linux上从Windows编译OpenGL应用程序_C++_Linux_Opengl_G++ - Fatal编程技术网

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

C++ 在Linux上从Windows编译OpenGL应用程序,c++,linux,opengl,g++,C++,Linux,Opengl,G++,我的朋友制作了OpenGL图形引擎,但他正在Windows上工作。我想用它来编译项目。 我安装了所有需要的带有标题的lib,但现在的问题是链接(project in Code::Blocks)。我找到了/usr/lib/libSOIL.a和/usr/local/lib/libglfw3.a的路径,但是: C:\ProgramFiles(x86)\CodeBlocks\MinGW\lib\libopengl32.a C:\Program Files(x86)\CodeBlocks\MinGW\l

我的朋友制作了OpenGL图形引擎,但他正在Windows上工作。我想用它来编译项目。
我安装了所有需要的带有标题的lib,但现在的问题是链接(project in Code::Blocks)。我找到了
/usr/lib/libSOIL.a
/usr/local/lib/libglfw3.a
的路径,但是:

  • C:\ProgramFiles(x86)\CodeBlocks\MinGW\lib\libopengl32.a
  • C:\Program Files(x86)\CodeBlocks\MinGW\lib\assimp\u debug-dll\u win32\assimp.lib
还有,我必须在项目文件中修改什么才能编译它?它需要:
glfw3、glm、gl3w.h、assimp、SOIL
(这是我从.hpp文件中得到的)。我安装了所有标题(下载的源代码和
make&&makeinstall

我试图用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-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编译它…

libopengl32->libGL.a

assimp->libassimp.a

您必须提供编译时使用的Makefile。

libopengl32->libGL.a

assimp->libassimp.a


您必须提供编译时使用的Makefile。

但是从哪个目录?我有一些libGL.so,没有libassimp.a:(请查看我的编辑,我在
ld
中添加了错误。没有libGL.a。您想链接到libGL.so,只需指定
-lGL
链接器标志即可。@aso您似乎忘记了链接到GLFW,请将-lglfw3指定到命令行,但从哪个目录?我有几个libGL.so,没有libassimp.a:(请看我的编辑,我在
ld
中添加了错误。没有libGL.a。您只需指定
-lGL
链接器标志即可链接到libGL.a。@aso您似乎忘记了链接GLFW,请在命令行中指定-lglfw3。我认为您的问题不在于如何在Linux中使用OpenGL进行编译,而在于您对g GCC构建工具链在Linux中的工作方式。仅仅将一个Makefile放入其中并不能真正解决这个问题。现在已经解决了,只是库中的大量错误等等。而且,Makefile确实比C::B project更好。我认为你的问题不在于如何在Linux中使用OpenGL进行编译,而在于对GCC如何在Linux中运行的普遍缺乏理解ild工具链在Linux中工作。只是将一个Makefile放入其中并不能真正解决这个问题。现在已经解决了,只是库中的大量错误等等。而且,Makefile确实是比C::B project更好的解决方案。。。