VS2015 + emsdk + vs-tool

目的:

      VS2015 IDE内部嵌入Emscripten编译器,这样我们就可以使用VS强大的编辑功能,代码提示,一键编译(build),工程配置,工程结构明朗易懂易管理等。但目前emcc编译器的调试功能难以掌握,需要使用web进行调试,暂时不做深究。建议在写代码时,使用printf打印提示信息,这样可以在web端查看打印信息,从另一个角度辅助我们的调试。

Windows环境搭建步骤如下:

      1、安装好VS2015 IDE任何一个版本都可以。

      2、安装emsdk,安装步骤如下:

            <1>、下载python2.7版本以上的任意一个版本,安装到系统,最后使用python --version检查安装是否成功。

            <2>、下载git,安装到系统,git --version 检查是否安装成功。

            <3>、创建一个空目录,在该目录下打开cmd命令行工具,输入git clone https://github.com/emscripten-core/emsdk  等待克隆完成。

            <4>、cd emsdk 切换到该目录下。

            <5>、emsdk update 该命令会拉取所有最新文件,如果没有最新文件添加,会直接提示你git pull,走下一步即可。

            <6>、 git pull 等待更新到最新版本。

            <7>、emsdk install latest 等待安装完成,这一步会比较慢,建议安装一个vpn工具。

            <8>、emsdk activate latest 激活版本,这一步在此后要重新使用emsdk时需要先使用,才可以使用emcc编译代码。

            <9>、emcc -v 会显示最新版本号,说明安装成功。

    3、下载 vs-tool 工具:https://github.com/crosire/vs-toolsets

    4、将vs-toolsets-master目录下的所有内容拷贝到 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140 目录下粘贴即可。 注意:因为vs-toolsets-master这个工具只是针对VS2015写的规则文件, 

         所以拷贝目录就是VS2015平台所在目录。该工具还支持VS2013,但是没试验过,理论上应该没问题。其他VS版本不支持,除非我们仿造该工具专门为VS2015之后的版本写规则文件,同样拷贝到相应的平 台目录下。

    5、添加emsdk目录下的emscripten目录路径到系统环境变量Path中。并且增加EMSCRIPTEN 变量,变量值也是emscripten目录路径。 注意:请查找emsdk目录下,包括子目录,找到

         emscripten目录,将该目录路径拷贝到Path中。例如:我的emscripten目录路径为 D:\WebAssembly\emsdk\upstream\emscripten 将该路径添加到Path,增加EMSCRIPTEN变量与值。

    6、打开VS2015,新建一个console工程,选择配置管理器,增加新的平台Emscripten。 在工程属性中 配置属性->通用→平台工具集 选择Emscripten。 最后编译即可得到 html,js,wasm文件   

编译错误解决方案:

    a.编译可能会出现emcc.xml找不到,这时候查看VS中的$(LangID)值是多少,就将该目录(C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Emscripten\PlatformToolsets\emcc\1033)名字改为LangID的值。 我的clang ID 是2055,于是最终要修改为C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Emscripten\PlatformToolsets\emcc\2055

  b. 编译出现找不到 clang++.exe,这是系统环境变量中的EMSCRIPTEN 值没有与vs-tool里面配置的路径一致,需要将EMSCRIPTEN 的值改为你当前emscripten目录所在路径。

  

具体操作步骤如下图:

发布了3 篇原创文章 · 获赞 7 · 访问量 7577

猜你喜欢

转载自blog.csdn.net/qq_14931181/article/details/105508561