我正在使用OpenGL,GLU,freeGLUT,GLEW和SOIL(用于opengl纹理的图像加载器)进行一个小项目。我想将我的项目交叉编译到Windows,因为它最终将成为我计划出售的游戏,并且使用Windows的人要多于Linux。不幸的是,我使用的交叉编译器MinGW不支持GLEW网站上的GLEW预先构建的库。
我已经下载了GLEW源代码包,如何将其编译到libglew32.a(以及我忘记名字的其他两个文件,我认为是静态版本)文件中?已经有一个makefile,我应该使用吗?(我不确定这是否会使MinGW可以使用库)
TL; DR如何在ubuntu上为MinGW编译GLEW?
当创建打算在多个平台上运行并且打算进行交叉编译的软件时,将第三方库的源代码(如果没有源代码,则库本身)包含在项目中总是一个好主意。源并构建树。
理想情况下,所有内容都可以在源代码树外构建,但有时(通常)并非如此,因此您必须手动执行多个构建,将生成的二进制文件复制到主项目的构建系统可以访问它们的某个位置。
对于交叉编译,它通常归结为准确指定要使用的工具链二进制文件。例如,在Linux上,MinGW交叉编译器通常命名为i686-w64-mingw32-…
(或类似名称)。在配置第三方库构建时,您必须指定要使用的库。根据在构建系统上通过这一点无论发生CC
,CXX
,LD
和其他一些环境变量,或通过BUILD
,HOST
和TARGET
变量(见这里https://stackoverflow.com/a/5139451/524368)。
最好的情况是,如果您可以将第三者的所有内容都集成到项目构建系统中,因为这样可以避免手动管理它。我个人非常喜欢CMake构建系统,因为它支持树外构建,如果您拥有自己使用CMake的库,则可以简单地将其源树复制到项目的子目录中并包含它们CMake配置。
请注意,如果构建本身不太复杂(替换诸如Linux内核或ffmpeg之类的构建系统是疯狂的事情),那么替换项目构建系统通常是一个有效的选择,而替换诸如GLFW之类的构建系统可能是一个可行的选择。 )。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句