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. MyEclipse中 使用svn更新jar包 出现 svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted 导致整个svn异常处理

    svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted 2014-07-02 ...

  2. 【习题 3-4 UVA - 455】Periodic Strings

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举 [代码] #include <bits/stdc++.h> using namespace std; const ...

  3. Spring Boot 静态资源处理(转)

    Spring Boot 静态资源处理 Spring Boot 系列 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Bo ...

  4. AE加载不同数据的方法(GeoDatabase空间数据管理)

    原文 AE加载不同数据的方法(GeoDatabase空间数据管理) GeoDatabase 先看一下GeoDatabase核心结构模型图: 1  工作空间工厂WorkspaceFactory对象 Wo ...

  5. 18.1 IIC驱动程序(基于3.4.2内核)

    驱动使用smbus提供的IIC读写函数可以参考smbus-protocol.txt文档:应用层直接使用IIC读写函数读写IIC设备,应用层读写函数是由i2c-tools这个库提供的(编译的使用和应用程 ...

  6. nslookup详解(name server lookup)( 域名查询)

    nslookup详解(name server lookup)( 域名查询) 一.总结 1.爬虫倒是很方便拿到页面数据:a.网页的页面源码我们可以轻松获得  b.比如cnsd博客,文章的正文内容全部放在 ...

  7. LIGO找到首个超越广义相对论的证据?

    转自 麻省理工科技评论 原文 LIGO找到首个超越广义相对论的证据? 1915年,爱因斯坦根据简单的原理提出广义相对论,极大地改变了人们的时空观.广义相对论不仅解释了牛顿理论无法解释的现象,还做出许多 ...

  8. ConcurrentHashMap 内部实现分析

    ConcurrentHashMap ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法.Concurrent ...

  9. 怎样把ul li 前面的点去掉

    在li 属性框里 放入 <li style="list-style-type:none;">...<li> 就可以了

  10. 多校第六场 HDU 4927 JAVA大数类+模拟

    HDU 4927 −ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小时,从T到WA,唉--对算组合还是不太了解啊.如今对组合算比較什么了-- import java ...