【问题标题】:Unable to cross compile Linux openGL program with mingw32. Config.log error: undefined reference to `_glEnable'无法使用 mingw32 交叉编译 Linux openGL 程序。 Config.log 错误:未定义对“_glEnable”的引用
【发布时间】:2017-09-04 17:36:23
【问题描述】:

我正在尝试使用 Mingw32 交叉编译 OpenGL 程序,但遇到了障碍。调用 mingw32-configure 后;编译被

中断
configure: error: lacking proper OpenGL support

我检查了 config.log 文件,发现以下条目:

configure:21709: checking GL/gl.h usability  
configure:21726: ccache i686-pc-mingw32-g++ -c -O2 -g -pipe -Wall -,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields      conftest.cpp >&5  
configure:21732: $? = 0  
configure:21746: result: yes  
configure:21750: checking GL/gl.h presence  
configure:21765: ccache i686-pc-mingw32-g++ -E  conftest.cpp  
configure:21771: $? = 0  
configure:21785: result: yes  
configure:21813: checking for GL/gl.h  
configure:21820: result: yes  
configure:21834: checking for glEnable in -lGL  
configure:21869: ccache i686-pc-mingw32-g++ -o conftest.exe -O2 -g -pipe -    Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-      bitfields   conftest.cpp -lGL   >&5
/tmp/ccjGmlvX.o: In function 'main':../rpmbuild/SOURCES/poker3d-1.1.36/conftest.cpp:34: undefined reference to `_glEnable'  
collect2: ld returned 1 exit status  
configure:21875: $? = 1  
configure: failed program was:  
| /* confdefs.h.  */ 

在本网站上与此问题相关的另一个线程提出建议后,我已将 llvm 软件光栅化器添加到我的系统中,并且还实施了来自 Mingw 站点的建议,将 libopengl32.a 复制到 libGL.a。到目前为止,我在每次编译尝试后得到的错误都没有改变。

给我一​​些关于如何解决这个问题的建议。

【问题讨论】:

    标签: c++ opengl cross-compiling fedora mingw32


    【解决方案1】:

    autotools/autoconf 对交叉编译非常不利。生成的configure 脚本的工作方式是,对于许多测试,它会尝试编译并执行简短的测试 sn-p 程序。当然,由于缺乏指令集支持(为不同的 CPU 编译)或针对完全不同的操作系统,对于交叉编译的库,整个“执行”部分都会失败。

    至少在 Linux 中,可以使用“misc binfmt”内核支持来解决这个问题,它允许为非本地可执行格式注册解释器。对于 Windows 目标,您可以使用 Wine 作为解释器,对于外部 CPU,您可以使用 QEmu,它不仅可以模拟整个机器,而且可以将 CPU 模拟集中在单个进程/二进制文件上。当然你也可以组合起来。

    然而,这只是一个拐杖,老实说,你可能应该完全放弃 autoconf/autotools,只写 Makefile。今天,*nix-ish 系统是如此相似,以至于这些编译测试都没有任何意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-02
      • 2017-03-26
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多