luckykaiyi / nodejieba

"结巴"中文分词的Node.js版本

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

win10 X64, VS2013, nodejieba@2.2.2 编译不成功

ClockGet opened this issue · comments

excute post install scripts...
[nodejieba@2.2.2] scripts.install: "node-gyp rebuild" at .\node_modules.npminstall\nodejieba\2.2.2\nodejieba
在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。
index.cpp
nodejieba.cpp
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\lib\utils.h(19): warning C4267: “参数”: 从“size_t”转换到“uint32_t”,可能丢失数据 (..\lib\nodejieba.cpp) [C:\Users\Administrator\WebstormProjects\crawl
er\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\lib\utils.h(19): warning C4267: “参数”: 从“size_t”转换到“uint32_t”,可能丢失数据 (..\lib\index.cpp) [C:\Users\Administrator\WebstormProjects\crawler\n
ode_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\lib\utils.h(35): warning C4267: “参数”: 从“size_t”转换到“uint32_t”,可能丢失数据 (..\lib\index.cpp) [C:\Users\Administrator\WebstormProjects\crawler\n
ode_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\lib\utils.h(35): warning C4267: “参数”: 从“size_t”转换到“uint32_t”,可能丢失数据 (..\lib\nodejieba.cpp) [C:\Users\Administrator\WebstormProjects\crawl
er\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\lib\utils.h(51): warning C4267: “参数”: 从“size_t”转换到“uint32_t”,可能丢失数据 (..\lib\index.cpp) [C:\Users\Administrator\WebstormProjects\crawler\n
ode_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\lib\utils.h(51): warning C4267: “参数”: 从“size_t”转换到“uint32_t”,可能丢失数据 (..\lib\nodejieba.cpp) [C:\Users\Administrator\WebstormProjects\crawl
er\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nan\2.3.5\nan\nan_new.h(208): warning C4267: “参数”: 从“size_t”转换到“int”,可能丢失数据 (..\lib\index.cpp) [C:\Users\Administrator\WebstormProjects\crawler\node_modules.npmin
stall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\lib\utils.h(17): 参见对正在编译的函数 模板 实例化“v8::Localv8::Array Nan::New<v8::Array,unsigned __int64>(A0)”的引用
with
[
A0=unsigned __int64
]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\Unicode.hpp(141): warning C4267: “参数”: 从“size_t”转换到“uint32_t”,可能丢失数据 (..\lib\nodejieba.cpp) [C:\Users\Administrator\Webstor
mProjects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\SegmentBase.hpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 (..\lib\nodejieba.cpp) [C:\Users\Admin
istrator\WebstormProjects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\SegmentBase.hpp(11): error C2001: 常量中有换行符 (..\lib\nodejieba.cpp) [C:\Users\Administrator\WebstormProjects\crawler\node_modu
les.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\SegmentBase.hpp(13): error C2143: 语法错误 : 缺少“;”(在“using”的前面) (..\lib\nodejieba.cpp) [C:\Users\Administrator\WebstormProjects
\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\FullSegment.hpp(76): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据 (..\lib\nodejieba.cpp) [C:\Users\Administrator\WebstormPr
ojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\SegmentTagged.hpp(8): warning C4099: “cppjieba::DictTrie”: 类型名称以前使用“class”现在使用的是“struct” (..\lib\nodejieba.cpp) [C:\Users\A
dministrator\WebstormProjects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\DictTrie.hpp(27) : 参见“cppjieba::DictTrie”的声明
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\SegmentTagged.hpp(19): warning C4099: “cppjieba::DictTrie”: 类型名称以前使用“class”现在使用的是“struct” (..\lib\nodejieba.cpp) [C:\Users
Administrator\WebstormProjects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\DictTrie.hpp(27) : 参见“cppjieba::DictTrie”的声明
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\HMMSegment.hpp(162): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据 (..\lib\nodejieba.cpp) [C:\Users\Administrator\WebstormPr
ojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
c:\users\administrator\webstormprojects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\deps\cppjieba\HMMSegment.hpp(178): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 (..\lib\nodejieba.cpp) [C:\Users\Administrator\Webstorm
Projects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba\build\nodejieba.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (D:\nodejs\node-global\node_modules\cnpm\node_modules\npminstall\node_modules\node-gyp\lib\build.js:276:23)
gyp ERR! stack at emitTwo (events.js:87:13)
gyp ERR! stack at ChildProcess.emit (events.js:172:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "D:\nodejs\node.exe" "D:\nodejs\node-global\node_modules\cnpm\node_modules\npminstall\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Administrator\WebstormProjects\crawler\node_modules.npminstall\nodejieba\2.2.2\nodejieba
gyp ERR! node -v v4.4.7
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
Error: post install error, please remove node_modules before retry!
Run "C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuild" error, exit code 1
Error: post install error, please remove node_modules before retry!
Run "C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuild" error, exit code 1
at ChildProcess. (D:\nodejs\node-global\node_modules\cnpm\node_modules\npminstall\node_modules\runscript\index.js:67:21)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:827:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

我自己又解决了,把deps\cppjieba下面的SegmentBase.hpp文件用notepad打开然后在另存为保存为utf-8格式(话说原本就是utf-8格式啊),然后用vs打开build目录下边的binding.sln接着编译就好了。

同样的问题,win10 x64 vs2015 nodejs 4.4.7

@uoiszero 你的楼上不是已经给出解决办法了吗

也可以试试 2.2.3 版本,我尝试修复了这个苛刻的编译器问题。

@yanyiwu (๑•̀ㅂ•́)و✧

@ClockGet 试了2.2.3 了吗?可以不?

@yanyiwu 试了,没问题!

@yanyiwu 非常感谢

直接下載(非用npm)
在win10
Index.js require 資料夾build
可是下載包裡面沒有

使用node test.js後

存成了utf-8也不行
謝謝大家