文档章节

从 mingw32 转移到 cygwin 然后放弃 cygwin 采用 msys2

ylme
 ylme
发布于 2016/11/30 22:00
字数 547
阅读 75
收藏 1

mingw32 以及自带的 msys 用着挺舒服的。但是好久都没有更新了,gcc 编译器还是 4.x 。上次编译 assimp 不过,错误消息是 obj 文件太大。搜索了一下还是决定用新版本的 gcc 。而且现在都是用 64 位的 windows,我也想用 64 位编译器,所以决定用 cygwin 了,而且还在不断的更新。

安装完 cygwin64 开始编译 opengl 程序,居然编译不过,错误消息也很微妙。这个时候我看了 GL 的头文件是位于 cygwin64/usr/include/w32api/GL 这个目录下,而 cygwin 是完全模拟 Unix 平台,因此应该重新安装相关的包。我以在 cygwin64 编译 glfw 为例来指明要安装的东西。首先就是要安装 X Window ,参考这里安装。下面是一些要安装的包。安装完后就会发现另外有一个 GL 目录,这个目录的头文件就可以直接使用了。

  • xorg-server

  • xinit

  • xorg-docs

  • xlaunch

  • libX11-devel for Xlib.h Xutil.h Xmd.h

  • libXrandr-devel 编译 glfw 需要

  • libXinerama-devel 编译 glfw 需要

  • libXcursor-devel 编译 glfw 需要

  • libGL-devel for OpenGL

  • libEGL-devel for OpenGL ES

  • libGLU-devel for GLU

  • mesa-demos for glxinfo

发现没,要安装这么多东西,而且比较蛋疼的是运行也很蛋疼。因为不用 Windows 本地的 GL 就得用 mesa 但是这个版本很老了。总之很方便。我终于明白为什么好多人用的 mingw 没有用 cygwin 。由于 cygwin 完全移植到 Windows 上,真的太臃肿了。

后来我想用 mingw64 ,然后发现了 msys2 。真的很赞。然后就爱上了 msys2 ,而且上面的软件包很新。赞赞赞。

更新 msys2 软件包
pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime
更新其他软件包
pacman -Su

pacman -Sl | grep gcc
pacman -S mingw-w64-x86_64-gcc 
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-make
pacman -Sl | grep glew
pacman -S mingw-w64-x86_64-glew
pacman -Sl | grep glfw
pacman -S mingw-w64-x86_64-glfw
pacman -Sl | grep freeglut
pacman -S mingw-w64-x86_64-freeglut

装完这些我就可以开心的撸 OpengGL 了。推荐你们。注意,把 cmake 和 make 一起安装,我单独装 make 不能正确执行,提示找不到一个动态库。

© 著作权归作者所有

共有 人打赏支持
ylme
粉丝 10
博文 40
码字总数 41754
作品 0
广州
程序员
Windows环境下的C/C++编译器

编译器介绍 在Windows下的开发实际上是VS(Visual Studio)一家独大,而在Linux上则是GCC占据主导地位,这两种编译器是和其对应的操作系统紧密联系在一起的。伴随着计算机技术的发展,GCC也有了...

wqli
2015/12/14
412
0
详解 Windows 下 Eclipse CDT 配置 C/C++ 编译环境

其实 windows 下,C、C++ IDE 也不少,但许多IDE的 UI 和用户体验基本都停留在上个世纪,除了 eclipse CDT 和 visual studio,但后者现在是个巨无霸,安装文件都 3 个多G,而且这货安装容易删...

大数据之路
2015/05/10
0
0
VLC-2.2.1编译

移步 http://higoge.github.io/categories/流媒体/ Cygwin需要安装的包 Archive Devel Editor Libs Net Text Utils Web 海狗哥的流媒体空间大部分介绍VLC的编译,跟踪了0.8.6i到1.0.X版本的编...

xxdd
2016/09/19
12
0
GDAL使用mingw编译问题

编译的时候总是提示找不到头文件 在window下使用tdm-mingw编译64位的程序。 在cygwin下使用./configure --prefix=/cygdrive/d/developmentlibrary/GDAL/gdal-2.0.2-mingw64/build --with-li...

乌合之众
2016/02/17
675
1
Git for Windows 2.12.1 发布,分布式版本控制系统

Git for Windows 2.12.1 发布了,自 2.12.0 发布以来的变更如下: 新特性 Comes with Git v2.12.1. In addition to the GitForWindows NuGet package, we now also publish MinGit as a NuGe......

局长
2017/03/22
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
刚刚
0
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
31分钟前
1
0
php foreach

<?php// 数组的引用$a=array(1,2,3,4,5);foreach($a as $key=>&$value){$value=$value*2;}print_r($a);echo " $key -------------------$value\r\n";/** * ...

小张525
39分钟前
1
0
12-利用思维导图梳理JavaSE-多线程

12-利用思维导图梳理JavaSE-多线程 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一...

飞鱼说编程
今天
0
0
JAVA集合之ArrayList

一、前言 Java 集合类提供了一套设计良好的支持对一组对象进行操作的接口和类,JAVA常用的集合接口有4类,分别是: Collection:代表一组对象,每一个对象都是它的子元素 Set:不包含重复元素...

木木匠
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部