vcmi源码编译 windows+cmake+mingw

##1 准备

  1. HoMM3 gog.com
  2. CMake 官网
  3. vcmi 源码 下载
  4. QT5 with mingw 官网
  5. Boost 源码1.55 下载
  6. MSYS2 官网

##2 安装
###2.1 vcmi源码 目标路径 D:/vcmi/source/
###2.2 QT5 with mingw, 设置环境变量

set PATH=D:\Qt\Qt5.4.1\5.4\mingw491_32\bin;D:\Qt\Qt5.4.1\Tools\mingw491_32\bin;%PATH%

###2.3 Boost 1.55

bootstrap.bat mingw
b2 toolset=gcc --without-python --stage
copy stage/lib to D:/vcmi/boost/lib
copy boost dir to D:/vcmi/boost/boost

###2.4 MSYS2
msys2-x86_64-20160205 该版本似乎有改动,导致MSYS2 shell配置错误,尚未解决。

D:/msys64/etc/pacman.conf 修改网络代理配置
XferCommand = /usr/bin/curl -x http://yourproxy.yoursite.com:yourport -L -C - -f %u > %o
-x 设置proxy,-L 支持自动重定向
运行MSYS2 shell, 执行pacman -Syu,关闭(更新MSYS2软件库到最新)
运行autorebase.bat(刷新MSYS2)
运行MSYS2 shell, 安装所需库:
pacman -S mingw-w64-i686-SDL2
pacman -S mingw-w64-i686-SDL2_image
pacman -S mingw-w64-i686-SDL2_mixer
pacman -S mingw-w64-i686-SDL2_ttf
pacman -S mingw-w64-i686-ffmpeg
pacman -S mingw-w64-i686-zlib

###2.5 D:/vcmi/toolchain.txt新建

SET(CMAKE_SYSTEM_NAME Windows)
SET(VCMIBUILD_DIR D:/vcmi) SET(CMAKE_C_COMPILER D:/Qt/Qt5.4.1/Tools/mingw491_32/bin/gcc.exe)
SET(CMAKE_CXX_COMPILER D:/Qt/Qt5.4.1/Tools/mingw491_32/bin/g++.exe) SET(ENV{BOOST_ROOT} ${VCMIBUILD_DIR}/boost) SET(CMAKE_FIND_ROOT_PATH D:/msys64/mingw32)
list(APPEND CMAKE_PREFIX_PATH ${CMAKE_FIND_ROOT_PATH})
list(APPEND CMAKE_PREFIX_PATH D:/Qt/Qt5.4.1/Tools/mingw491_32) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)

##3 编译

Open CMake-gui
Select D:/vcmi/source as source directory
Select D:/vcmi/binary as binary directory
click "Configure"
Select "MinGW makefiles" in combobox
Select "Specify toolchain file for crosscompiling"
Select toolchain file (D:/vcmi/toolchain.txt)
Set variables:
CMAKE_INSTALL_PREFIX = D:/vcmi/result
ENABLE_PCH = OFF (because of cc1plus.exe crash)
click Configure
click Generate
go to D:/vcmi/binary directory
execute mingw32-make
execute mingw32-make install

##4 运行
D:/vcmi/result/ 就是最终生成文件.
copy to Homm3.
enjoy it!

https://gist.github.com/9468305/4ecaddbfd8b4d9cefe57

vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译的更多相关文章

  1. 让vcmi支持英雄无敌3中文版

    Table of Contents 1 Hack 日志 2 Changes 3 Install by compiling 4 reply of Ivan 1 Hack 日志 8月22日开始动手修改改v ...

  2. GGTalk——C#开源即时通讯系统源码介绍系列(一)

    坦白讲,我们公司其实没啥技术实力,之所以还能不断接到各种项目,全凭我们老板神通广大!要知道他每次的饭局上可都是些什么人物! 但是项目接下一大把,就凭咱哥儿几个的水平,想要独立自主.保质保量保期地一个个 ...

  3. 英雄无敌3开源引擎vcmi的编译安装

    TAGS: Heroes3, vcmi, opensourceDATE: 2013-08-23 vcmi是什么? vcmi 是经典的 SLG 英雄无敌3 的开源游戏引擎.原来的英雄无敌3只能在Wind ...

  4. GitHub上的开源复刻:暗黑破坏神2

    现在的00后少年可能已经不太了解<暗黑破坏神2>这款由暴雪打造的经典游戏. 该游戏上市的时候,国内个人家用电脑还没有那么普及,网络游戏也没有那么风靡,现在的孩子可能无法想象,那时候网吧里的 ...

  5. AndroidStudio导入第三方开源库 --文件夹源码

    1 在已打开的项目中  File-New-ImportModule 选择开源项目中的 库所在文件夹比如 library文件夹 然后导入. 2 File-Project  Sructure  在Modu ...

  6. Android开源git40个App源码

    http://www.itbbu.com/1039.html (JamsMusicPlayer)很棒的音乐播放器(new)   (F8)日程安排的软件   (Conversations)基于XMPP的 ...

  7. TP5框架,开源小程序商城源码,前端+后台完整版

    CRMEB微信公众号商城小程序商城数据同步,带积分.优惠券.秒杀.砍价.分销等功能,更是一套方便二次开发的框架 开源地址:https://github.crmeb.net/u/crmeb 商城演示后台 ...

  8. 大型Unity手游《英雄之刃-最后之战》源码分析

    英雄之刃之最后一战是国内首款原创精品MOBA手游,是一款由前暴雪文案亲自操刀世界观,日韩专业团队打造美术场景,新加坡团队精心制作战斗音乐的旷世之作! 超快速的匹配对战.默契的团队协作给你带来意犹未尽的 ...

  9. 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)

    转自:http://blog.csdn.net/kuerjinjin/article/details/23563059 从12年那会儿开始获取源码和构建chromium项目都是按照那时候的官方要求用w ...

随机推荐

  1. LDD3之并发和竞态-completion(完毕量)的学习和验证

    LDD3之并发和竞态-completion(完毕量)的学习和验证 首先说下測试环境: Linux2.6.32.2 Mini2440开发板 一開始难以理解书上的书面语言,这里<linux中同步样例 ...

  2. DMA 如何查看它有没有传输完成 传输完成再开启

    摘自:https://blog.csdn.net/zzwdkxx/article/details/9026173 /////////////////////////////////////////// ...

  3. 【u246】卫星照片

    Time Limit: 1 second Memory Limit: 64 MB [问题描述] 农夫 John 正在研究他的农场的卫星照片.照片为一个R (1<= R <= 75) 行C ...

  4. Tomcat请求处理过程(Tomcat源代码解析五)

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  5. 微信小程序初步运营方案

    小程序的运营方案有很多种,目前我们遇到两个事情需要解决:1.问答的内容,这块也是大家比较关心的话题.内容的定位和细节. 2.预热与推广,就这两个问题,我列出了一些自己的想法和小程序初步运营方案,有不足 ...

  6. 【C++竞赛 C】yyy的数学公式

    时间限制:1s 内存限制:32MB 问题描述 yyy遇到了一个数学问题如下: S_n=∑F(i) 其中F(i)表示i的最大奇因数 yyy的数学非常好,很快就得到了结果.现在他把问题交给你,你能解决吗? ...

  7. sql server操作远程数据库

    --连接远程数据库 EXEC sp_addlinkedserver '服务器ip',N'SQL Server' --登录远程服务器 EXEC sp_addlinkedsrvlogin '服务器ip', ...

  8. 深入理解JVM:垃圾收集器与内存分配策略

    堆里面存放着Java世界差点儿全部的对象实例,垃圾收集器在对堆进行回收前.第一件事情就是要确定这些对象之中哪些还存活,哪些已经死去.推断对象的生命周期是否结束有下面几种方法 引用计数法 详细操作是给对 ...

  9. AE属性表操作

    转自chanyinhelv原文AE属性表操作 实现的操作包括:1.打开属性表:2.编辑属性表:3.增加属性列:4.数据排序:5.字段计算…… 嗯,实现的功能目前就这些吧,后续还会继续跟进,还望大家多多 ...

  10. [React Router v4] Style a Link that is Active with NavLink

    We often need to be able to apply style to navigation links based on the current route. In React Rou ...