繁体   English   中英

如何将我正在交叉编译的程序的ubuntu上的GLEW交叉编译到Windows?

[英]How can I cross-compile GLEW on ubuntu to windows for a program I am cross-compiling?

我正在使用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-… (或类似名称)。 在配置第三方库构建时,您必须指定要使用的库。 根据构建系统的不同,这可能通过CCCXXLD和其他一些环境变量发生,或者通过BUILDHOSTTARGET变量发生(请参见此处https://stackoverflow.com/a/5139451/524368 )。

最好的情况是,如果您可以将第三者的所有内容都集成到项目构建系统中,因为这样可以避免手动管理它。 我个人非常喜欢CMake构建系统,因为它支持树外构建,如果您自己使用了CMake库,则可以简单地将其源树复制到项目的子目录中并包括它们CMake配置。

请注意,如果构建本身不太复杂(替换诸如Linux内核或ffmpeg之类的构建系统是疯狂的事情),那么替换项目构建系统通常是一个有效的选择,而替换诸如GLFW之类的构建系统可能是一个可行的选择。 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM