【问题标题】:How can I cross-compile GLEW on ubuntu to windows for a program I am cross-compiling?对于我正在交叉编译的程序,如何将 ubuntu 上的 GLEW 交叉编译到 Windows?
【发布时间】:2014-11-01 00:25:03
【问题描述】:

我正在开发一个使用 OpenGL、GLU、freeGLUT、GLEW 和 SOIL(opengl 纹理的图像加载器)的小项目。我想将我的项目交叉编译到 Windows,因为它最终将成为我计划出售的游戏,而且使用 Windows 的人比使用 Linux 的人多。不幸的是,我使用的交叉编译器 MinGW 不支持 GLEW 网站上的 GLEW 预建库。

我已经下载了 GLEW 源代码包,如何将它编译成我需要的 libglew32.a(以及另外两个我忘记名称的文件,一个是静态版本)文件?已经包含了一个makefile,我应该使用它吗? (我只是不确定这是否会使一个库可用于 MinGW)

TL;DR 如何在 ubuntu 上为 MinGW 编译 GLEW?

【问题讨论】:

    标签: c++ windows opengl ubuntu glew


    【解决方案1】:

    在创建旨在在多个平台上运行的软件并且您计划进行交叉编译时,最好包含第三方库的源代码(或者如果您没有源代码,则包含库本身)进入您的项目源代码和构建树。

    理想情况下,所有内容都可以在源代码树之外构建,但有时(通常)并非如此,因此您必须手动进行多次构建,将生成的二进制文件复制到主项目的构建系统可以访问的某个位置他们。

    对于交叉编译,它通常归结为准确指定要使用的工具链二进制文件。例如,在 Linux 上,MinGW 交叉编译器通常被命名为 i686-w64-mingw32-…(或类似名称)。在配置 3rd 方库构建时,您必须指定要使用的库。根据构建系统,这可以通过CC、CXX、LD 和其他一些环境变量发生,或者通过BUILD、HOST 和TARGET 变量发生(参见此处https://stackoverflow.com/a/5139451/524368)。

    最好的情况是,如果您可以将第 3 方的所有内容集成到您的项目构建系统中,因为这样您就无需手动管理它。就我个人而言,我非常喜欢 CMake 构建系统,因为它支持树外构建,如果你有自己使用 CMake 的库,你可以简单地将它们的源代码树复制到项目的子目录中并包含它们CMake 配置。

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

    【讨论】:

      猜你喜欢
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 2017-06-26
      相关资源
      最近更新 更多