bnoordhuis / node-buffertools

working with node.js buffers made easy
ISC License
205 stars 35 forks source link

build error on win7 and win8.1? #86

Open huge818 opened 7 years ago

huge818 commented 7 years ago

build it both error win7 x64 node6.9.4 vs2015 win8.1 x64 node6.9.4 vs2015

C:\Users\Administrator λ cd C:\nodejs\node-buffertools

C:\nodejs\node-buffertools λ node-gyp configure gyp info it worked if it ends with ok gyp info using node-gyp@3.6.0 gyp info using node@6.9.4 | win32 | x64 gyp info spawn C:\Python27\python.EXE gyp info spawn args [ 'C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-gyp\gyp\gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'msvs', gyp info spawn args '-G', gyp info spawn args 'msvs_version=auto', gyp info spawn args '-I', gyp info spawn args 'C:\nodejs\node-buffertools\build\config.gypi', gyp info spawn args '-I', gyp info spawn args 'C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-gyp\addon.gypi', gyp info spawn args '-I', gyp info spawn args 'C:\Users\Administrator\.node-gyp\6.9.4\include\node\common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=C:\Users\Administrator\.node-gyp\6.9.4', gyp info spawn args '-Dnode_gyp_dir=C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-gyp', gyp info spawn args '-Dnode_lib_file=node.lib', gyp info spawn args '-Dmodule_root_dir=C:\nodejs\node-buffertools', gyp info spawn args '-Dnode_engine=v8', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'C:\nodejs\node-buffertools\build', gyp info spawn args '-Goutput_dir=.' ] gyp info ok

C:\nodejs\node-buffertools λ node-gyp build gyp info it worked if it ends with ok gyp info using node-gyp@3.6.0 gyp info using node@6.9.4 | win32 | x64 gyp info spawn C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe gyp info spawn args [ 'build/binding.sln', gyp info spawn args '/clp:Verbosity=minimal', gyp info spawn args '/nologo', gyp info spawn args '/p:Configuration=Release;Platform=x64' ] 在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。 buffertools.cc c:\nodejs\node-buffertools\BoyerMoore.h(35): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据 [C:\nodejs\node-buffertools\build\buffertools.vcxproj] c:\nodejs\node-buffertools\BoyerMoore.h(57): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据 [C:\nodejs\node-buffertools\build\buffertools.vcxproj] c:\nodejs\node-buffertools\BoyerMoore.h(61): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 [C:\nodejs\node-buffertools\build\buffertools.vcxproj] c:\nodejs\node-buffertools\BoyerMoore.h(61): warning C4267: “初始化”: 从“size_t”转换到“const int”,可能丢失数据 [C:\nodejs\node-buffertools\build\buffertools.vcx proj] c:\nodejs\node-buffertools\BoyerMoore.h(62): warning C4267: “初始化”: 从“size_t”转换到“int”,可能丢失数据 [C:\nodejs\node-buffertools\build\buffertools.vcxproj] c:\nodejs\node-buffertools\BoyerMoore.h(62): warning C4267: “初始化”: 从“size_t”转换到“const int”,可能丢失数据 [C:\nodejs\node-buffertools\build\buffertools.vcx proj] c:\nodejs\node-buffertools\BoyerMoore.h(110): warning C4267: “=”: 从“size_t”转换到“int”,可能丢失数据 [C:\nodejs\node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(100): error C2737: “std::is_same_v”: 必须初始化“constexpr”对象 [C:\nodejs\node-b uffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(100): error C2998: “const bool std::is_same_v”: 不能是模板定义 [C:\nodejs\node-b uffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(245): error C2737: “std::is_integral_v”: 必须初始化“constexpr”对象 [C:\nodejs\no de-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(245): error C2998: “const bool std::is_integral_v”: 不能是模板定义 [C:\nodejs\no de-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(282): error C2737: “std::is_floating_point_v”: 必须初始化“constexpr”对象 [C:\nod ejs\node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(282): error C2998: “const bool std::is_floating_point_v”: 不能是模板定义 [C:\nod ejs\node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(295): error C2737: “std::is_arithmetic_v”: 必须初始化“constexpr”对象 [C:\nodejs\ node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(295): error C2998: “const bool std::is_arithmetic_v”: 不能是模板定义 [C:\nodejs\ node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstddef(697): error C2737: “std::is_function_v”: 必须初始化“constexpr”对象 [C:\nodejs\node- buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstddef(697): error C2998: “const bool std::is_function_v”: 不能是模板定义 [C:\nodejs\node- buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(524): error C2275: “_To”: 将此类型用作表达式非法 [C:\nodejs\node-buffertools\build\ buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(521): note: 参见“_To”的声明 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(526): note: 参见对正在编译的类 模板 实例化“std::is_assignable<_To,_From>”的引用 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(524): error C2275: “_From”: 将此类型用作表达式非法 [C:\nodejs\node-buffertools\buil d\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(522): note: 参见“_From”的声明 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(524): error C3861: “is_assignable”: 找不到标识符 [C:\nodejs\node-buffertools \build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(524): error C2975: “_Val”:“std::integral_constant”的模板参数无效,应为编译时常量表达式 [C: \nodejs\node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xtr1common(21): note: 参见“_Val”的声明 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(1245): error C2061: 语法错误: 标识符“make_integer_seq” [C:\nodejs\node-buffer tools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(1249): error C2065: “_Vals”: 未声明的标识符 [C:\nodejs\node-buffertools\build\b uffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(1249): error C2975: “_Vals”:“std::integer_sequence”的模板参数无效,应为编译时常量表达式 [C :\nodejs\node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(1190): note: 参见“_Vals”的声明 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(1252): error C2061: 语法错误: 标识符“make_integer_sequence” [C:\nodejs\node-buf fertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\type_traits(1261): error C2631: “identity”: 别名模板中不能定义类或枚举 [C:\nodejs\node-buffertool s\build\buffertools.vcxproj] ..\buffertools.cc : fatal error C1903: 无法从以前的错误中恢复;正在停止编译 [C:\nodejs\node-buffertools\build\buffertools.vcxproj] C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\CL.exe 中有内部编译器错误。系统将会提示你稍后向 Microsoft 发送错误报告。 “C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\CL.exe”中的内部编译器错误 请选择 Visual C++ “帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息 gyp ERR! build error gyp ERR! stack Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-gyp\lib\build.js:285:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) gyp ERR! System Windows_NT 6.1.7601 gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\Administrator\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js" "build" gyp ERR! cwd C:\nodejs\node-buffertools gyp ERR! node -v v6.9.4 gyp ERR! node-gyp -v v3.6.0 gyp ERR! not ok

C:\nodejs\node-buffertools λ

bnoordhuis commented 7 years ago

Hard to say because I can't read the error messages but if I had to guess, it's that msbuild.exe finds the right system headers (the ones in C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include) but subsequently invokes the wrong cl.exe. Try passing --msvs_version=2015 to node-gyp.