window 下生成NodeJs(v8.9.3) 的 VS2015 解决方案node.sln
window 下生成NodeJs(v8.9.3) 的 VS2015 解决方案node.sln
使用步骤 也可以参照 github:
https://github.com/nodejs/node/blob/master/BUILDING.md#windows-1
1. 从 github 同步
https://github.com/nodejs/node
2.安装 python 2.7 或者 2.6
https://www.python.org/downloads/
当然, 如果有Python 环境, 就跳过好了
3. 修改 common.gypi
因为如果 不修改的话, 会报好多错误的....
E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'node_shared' is not defined while evaluating condition 'node_shared=="true"' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'node_shared' is not defined while evaluating condition 'node_shared=="true"' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'node_use_openssl' is not defined while evaluating condition 'OS=="win" and node_use_openssl=="true" and node_shared_openssl=="false"' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'node_shared_openssl' is not defined while evaluating condition 'OS=="win" and node_use_openssl=="true" and node_shared_openssl=="false"' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'openssl_fips' is not defined while evaluating condition 'openssl_fips != ""' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'v8_enable_inspector' is not defined while evaluating condition 'v8_enable_inspector==1' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'node_enable_d8' is not defined while evaluating condition 'node_enable_d8=="true"' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'node_release_urlbase' is not defined while evaluating condition 'node_release_urlbase!=""' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'debug_http2' is not defined while evaluating condition 'debug_http2==1' in E:\Projects\C++\node-git\trunk\node.gyp E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'v8_enable_i18n_support' is not defined while evaluating condition 'v8_enable_i18n_support==1' in E:\Projects\C++\node-git\trunk\node.gyp
好多变量都没有定义.....
下面是修改的部分(红色粗体字,变量值是我自己的缺少设置,可以改), 文件在主目录下
{
'variables': {
'asan%': 0,
'werror': '', # Turn off -Werror in V8 build.
'visibility%': 'hidden', # V8's visibility setting
'target_arch%': 'ia32', # set v8's target architecture
'host_arch%': 'ia32', # set v8's host architecture
'want_separate_host_toolset%': 0, # V8 should not build target and host
'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
'component%': 'static_library', # NB. these names match with what V8 expects
'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way
'python%': 'python',
'node_shared': 'false',
'node_enable_d8': 'false',
'v8_enable_inspector': 1,
'v8_enable_i18n_support': 'true',
'debug_http2': 1,
'debug_nghttp2': 1,
'node_use_openssl': 'false',
'node_shared_openssl': 'true',
'openssl_fips': '',
'node_release_urlbase': '',
'node_shared%': 'false',
'force_dynamic_crt%': 0,
'node_use_v8_platform%': 'true',
'node_use_bundled_v8%': 'true',
'node_module_version%': '',
.....
4.修改 deps\v8\src\v8.gyp
貌似调用 deps\v8\src\v8.gyp 的时候, 有个参数没有传进去,target_arch的值我用的 是 'x64':
E:\Projects\C++\node-git\trunk\tools>gyp_node.py -Dtarget_arch=x64 -f msvs
gyp: name 'debug_nghttp2' is not defined while evaluating condition 'debug_nghttp2 == 1' in E:\Projects\C++\node-git\trunk\deps\nghttp2\nghttp2.gyp
gyp: Undefined variable target_arch in E:\Projects\C++\node-git\trunk\deps\v8\src\v8.gyp
所以,手动加了这个变量
{
'variables': {
'target_arch': 'x64',
'v8_code': 1,
.....
5. 生成 解决方案
一般来说,使用 gyp 生成 VS 的解决方案的, 都是 使用类似的 命令行:
"gyp_XXXX.py -Dtarget_arch=x64 -f msvs" XXXX 就是工程/解决方案名,例如 V8的 就是 gyp_V8.gyp; Node的就是gyp_node.gyp
tools>gyp_node.py -Dtarget_arch=x64 -f msvs
Over!
6.如果 用 vcbuild.bat 生成, 就不会有这些错误
以上是直接 运行 gyp_node.py 会产生 缺少 变量, 但是 如果 用 vcbuild.bat, 就不会. >>git上有issue说明<< ^_^
window 下生成NodeJs(v8.9.3) 的 VS2015 解决方案node.sln的更多相关文章
- Window下配置NodeJs环境详解
今年打算学习Web这块,所以就买了本Node.js+MongoDb+AngularJS这本书,这周天也比较忙,想着录视频(拍小片,不是AV,不要误会,是在线课程)的事情,这周又将Asp.Net ...
- Window下对nodejs多版本管理GNVM
Windows下对nodejs多版本的管理,实现随意切换! 官方地址: https://github.com/Kenshin/gnvm http://ksria.com/gnvm/ 01.下载GNVM ...
- Window下生成OpenSSL自签证书
:OPenSSL下载地址:https://www.openssl.org/source/ 编译好的OpenSSL下载地址: http://slproweb.com/products/Win32Open ...
- window下,nodejs 安装 http-server,开启命令行HTTP服务器
第一步:http://nodejs.cn/ 官网下载安装文件,安装nodejs: 第二步:运行中输入cmd进入命令行模式,输入 node -v ,显示版本号,代表安装成功: 第三步:在node命令 ...
- linux和window下生成任意大小的文件
在Windows环境下的实现方法 使用fsutil命令,在windows xp和win 7下应该都自带了这个命令.命令的格式是 fsutil file createnew 新文件名 文件大小.例如 ...
- window下安装nodejs
下载nodejs 去https://nodejs.org/en/download/下载nodejs,有.mis(安装版)和.exe(二进制版) .mis(安装版) 一般下载这个就行,简单方便,自带np ...
- window下,nodejs安装http-server,并开启HTTP服务器
1.下载nodejs 官方下载地址:https://nodejs.org/en/ 2.在cmd命令中,输入node -v 输入出版本号,代表安装成功. 3.输入 npm install http-s ...
- window下golang生成静态库给C语言调用
buidmod为c-archive能在window下生成 ,c-shared则不行 1.golang生成c-archive静态库 main.go package main import "C ...
- window下nodejs用nodemon启动koa2项目(用cmd启动不了,要用Git Bash Here 启动才可以)
window下nodejs用nodemon启动koa2项目(用cmd启动不了,要用Git Bash Here 启动才可以)nodemon --watch 'app/**/*' -e ts --exec ...
随机推荐
- dedecms列表页有图调用缩略图无图留空的方法
默认情况下,织梦的文章列表页会调用出当前栏目下的文章列表,并且调用出每个文章的缩略图:如果文章本身就有图,会调用出一张小图,如果没有,则会显示默认的织梦图片.这种处理方式有时候比较影响美观,其实可以修 ...
- Vuejs技术栈知识点小结
前言 上家公司的项目主要是使用jQuery和Angular1,然后自己学了React,没想到来到这家公司突然开始做vue,不过vue还是挺容易上手的.下面是vue技术栈的一些总结,都是来自官网,主要是 ...
- Java Enum解析【转】
Enum用法: 1:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多 ...
- PHP 环境搭建及zabbix安装遇到的一些坑.
参考https://segmentfault.com/a/1190000003409708 进行php环境搭建. 下载 php5 http://windows.php.net/download 下载 ...
- Hyperledger Fabric CouchDB as the State Database
使用CouchDB作为状态数据库 状态数据库选项 状态数据库包括LevelDB和CouchDB.LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库.与 ...
- python3 第十三章 - 数据类型之tuple(元组)
元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可: language = ('c', 'c++', 'py ...
- linux_Nginx日志
错误信息日志配置: 日志文件默认:/application/nginx/logs/erroe.log error_log logs/error.log error; # 不写默认就有,默认error, ...
- asp.net core 部署到服务器之后外网访问不了
部署发现问题 今天在部署.net core的时候,发现访问http://localhost:xxxx可以,但是用外网访问并不行! 开始尝试解决问题 一开始以为是nginx的问题.各种折腾,各种改配置文 ...
- ueditor显示内容末尾有多余标记的解决
问题: 最近用了百度的ueditor文本编辑器,出现一个问题,用ueditor存数据到数据库都正常,但是重新读取后赋值到ueditor却会在末尾多出 "> 这两个符号.赋值方式如下: ...
- JFreeChart绘制折线图实例
JFreeChart是JAVA平台上的一个开放的第三方图表绘制类库.只要下载JFreeChart的类库,导入项目即可使用.下面是一个绘制折线图的实例.各处注释都已经写的比较清晰了. package c ...