上一篇说了如何编译 Android 下的 mono,这里简要说下编译 windows 版本的 mono,就是 mono.dll,Unity 版本只有一个 mono.dll,官方的 mono,好几个可执行文件。由于一开始用了 mingw 和 msys 编译的 android 版本,所以我变顺其自然的也是用这个环境编译。

  我分辨尝试和修改了 external/buildscripts 下面的:build_runtime_win.pl, build_runtime_win64.pl, build-mingw32.sh 等,其中包括了从 Unity-Technologies/monobuildtools 下载后合并修改的各种脚本。总之是各种失败。

  后来我才使用本机安装的 vs2015 打开了 msvc/mono.sln 进行编译,但是依然是大部分编译通过,卡在一些小错误怎么都解决不了。由于 mono.sln 是 vs2010 的项目,于是我就做最后的打算实在不行就放弃,安装了 vs2010,然后最后所有编译通过,但是链接失败了,查阅了下资料是发现没有安装 sp1,是 vs 的 bug,安装 vs2010 sp1 后,一切顺利,可以编译出 x86/x64位,分别位于:

  x86: buildsembedruntimes/win32/mono.dll

  x64: buildsembedruntimes/win64/mono.dll

  结论:直接安装 vs2010 sp1 打开 msvc/mono.sln 直接编译对应平台下的整个解决方案即可,mono 的编译环境是比较复杂的,有很多编译中动态生成代码,就像 luajit。


2017-07-09 更新:

  感谢 @ST 同学的提醒,在这里忘了说了,如果使用默认的 Debug 编译,会出现 glib.h 找不到文件的依赖错误,但是 Release 能正常编译通过,当时我也遇到了这个问题但是忘记在这里写出来,我直接使用 Release 的结果去后续的工作了,看来还是会有人同样在这里埰坑。至于具体的原因由于时间原因没有仔细研究,如果有知道或者有挖掘过的同学请告知下。

编译 Windows 版本的 Unity Mono(2017-03-12 20:59)的更多相关文章

  1. FFmpeg笔记:使用MSVC工具链编译Windows版本静态库、动态库

    2019年3月开始,为了将音视频编解码功能集成到Cocos2d-x中,开始接触到FFmpeg: 当时开发环境还在Mac下,编译FFmpeg相比现在用Windows平台要方便的多: 最近,公司内部有个U ...

  2. 基于 Ubuntu 编译 windows 版 adb

    . . . . . adb 的源码在 Android 源码树中,所以只能在 Linux 下编译,而在 Linux 下编译 windows 版本的应用就需要使用交叉编译器 MinGW 了. 环境: Ub ...

  3. hiredis的各种windows版本

    hiredis的各种windows版本(金庆的专栏 2016.12)hiredis 是内存数据库 redis 的客户端C库, 不支持Windows.hiredis的Windows移植版本有许多:des ...

  4. Windows 下使用 mingw+msys 交叉编译 Android Unity Mono

    对于没有升级到 Unity5.4的用户,发布安卓版本都会有对 C# 脚本进行加密的需求,我们项目在裸奔了很长时间后,决定开始做这件事. 网上查看了很多资料,我很希望直接在 windows 下编译而不去 ...

  5. zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板

    前言   Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下.   版本编译引导 zlib在windows上的mingw32 ...

  6. Unity Mono脚本 加密

    加密环境 引擎版本:Unity3D 5.3.4 及更高版本 (使用Mono而并非IL2CPP) 操作系统:CentOS 6.2(Final) 加密环境:Android.IOS(暂定) 加密对象:C#源 ...

  7. MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本

    本文主要讲述如何安装 C语言 编译器——MinGW-w64,特点是文章附有完整详细的实际安装过程截图,文字反而起说明提示作用. 编写本文的原因始于我的一个观点:图片可以比文字传达更多的信息,也能让其他 ...

  8. MinGW安装教程——著名C/C++编译器GCC的Windows版本

    前言本文主要讲述如何安装 C语言 编译器——MinGW,特点是文章附有完整详细的实际安装过程截图,文字反而起说明提示作用. 编写本文的原因始于我的一个观点:图片可以比文字传达更多的信息,也能让其他人更 ...

  9. 《⑨也懂系列:MinGW-w64安装教程》著名C/C++编译器GCC的Windows版本(MinGW-w64在安装的时候可以选择版本,有图,一步一步)

    发布日期 2016年10月31日 分类 教程 标签 编程.软件 前言<⑨也懂系列:MinGW-w64安装教程>这篇文章由 rsreland (http://rsreland.net)于 2 ...

随机推荐

  1. Java中主线程如何捕获子线程抛出的异常

    首先明确线程代码的边界.其实很简单,Runnable接口的run方法所界定的边界就可以看作是线程代码的边界.Runnable接口中run方法原型如下: public void run(); 而所有的具 ...

  2. Linux检测硬盘读取速度

    1. 清空缓存 > /proc/sys/vm/drop_caches 2. 测试读取速度 a. 将/dev/zero中数据按1M的数据单位写入testfile,共写512个单位,并不通过缓存 c ...

  3. 用python爬校花网

    import requests import re import hashlib,time def get_index(url): response=requests.get(url) if resp ...

  4. bzoj3671 [Noi2014]随机数生成器

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3671 [题解] 贪心从1...n*m取,开两个5000*5000的数组就够了,可以重复利用, ...

  5. flask函数已定义参数却出现takes 0 positional arguments but 1 was given的问题

    在flask中定义了一个简单的删除数据库内容的路由 测试却发现一直报错 说delete_history函数定义时没有接受参数,但是检查delete_history函数却发现没有问题 后来想了半天才发现 ...

  6. C# IEqualityComparer 使用方法 Linq Distinct使用方法

    创建 IEqualityComparer的接口类必须实现Equals和GetHashCode方法 public class TipComparer : IEqualityComparer<Tip ...

  7. Spring的BeanFactory体系结构(一)

    本文使用的代码是: Spring 3.0 接 触Spring也有很长一段时间了.但是,每次都是直接使用Spring直接提供的API,时间久了,自然也会想探索Spring里面的奥秘.今天上 午,整理出了 ...

  8. OOM有哪些情况,SOF有哪些情况

    OOM 1.全称为OutOfMemoryError异常,如果虚拟机在扩展栈时无法申请足够的内存空间,抛出它: 2.Java heap异常:java.lang.OutOfMemoryError:Java ...

  9. /proc/diskstats文件注解

    /proc/diskstats 注解 今儿在准备利用shell监控磁盘读写次数等信息时,看到该文件,但是又不清楚每段的具体含义,这里备注下. 文件内容 [root@namenode proc]# ca ...

  10. 64_k1

    KoboDeluxe-0.5.1-22.fc26.x86_64.rpm 13-Feb-2017 22:11 1626454 k3b-17.04.1-1.fc26.x86_64.rpm 25-May-2 ...