mac系统下,使用node-gyp编译node.js扩展,总共两步:
1 2 | node-gyp configure node-gyp build |
悲催的是,两步居然都出了问题
第一步碰上的问题是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
xcode-select: Error: No Xcode is selected. Use xcode-select -switch <path-to-xcode>, or see the xcode-select manpage (man xcode-select) for further information.
Traceback (most recent call last):
File "/usr/local/lib/node_modules/node-gyp/gyp/gyp", line 18, in <module>
sys.exit(gyp.main(sys.argv[1:]))
//..................
Exception: Error 2 running xcode-select
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:420:16)
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:91:17)
gyp ERR! stack at Process._handle.onexit (child_process.js:678:10)
gyp ERR! System Darwin 12.2.0
gyp ERR! command "node" "/usr/local/bin/node-gyp" "configure"
gyp ERR! cwd /JKL/MyWorld/node/c_m/helloWorld
gyp ERR! node -v v0.8.9
gyp ERR! node-gyp -v v0.8.3
gyp ERR! not ok
xcode-select: Error: No Xcode is selected. Use xcode-select -switch <path-to-xcode>, or see the xcode-select manpage (man xcode-select) for further information. |
第一反应是,node.js和Xcode有毛关系,google“path-to-xcode”,发现还真是有问题:我的系统曾经装过早期版本的xcode,是默认装在developer系统下,但是最新版本的xcode是在Applications目录里,虽然这对xcode没影响(至少我没发现),但是看起来是对里面的c++模块有影响,具体啥情况,我也不晓得~~只要知道解决方案就可以了:
重新设置xcode-select指到你的Xcode.app
1 | sudo xcode-select -switch /Applications/Xcode.app/ |
设置了xcode-select以后,“node-gyp configure”通过,但是“node-gyp build”再次出现问题:
1 2 3 4 5 6 7 8 | gyp info it worked if it ends with ok gyp info using node-gyp@0.8.3 gyp info using node@0.8.9 | darwin | x64 gyp ERR! build error gyp ERR! stack Error: not found: make gyp ERR! stack at F (/usr/local/lib/node_modules/node-gyp/node_modules/which/which.js:43:28) //.......... gyp ERR! not ok |
对configure/make这种玩意本来就不熟,于是有迷茫了一阵,继续google,发现据说是缺少GCC(GNU Compiler Collection,GNU编译器集合),还是需要通过Xcode解决:
打开Xcode -> Preferences -> Downloads -> Command Line Tools -> install -> Reboot
下载这个100多M的东西,用了些时间,然后再次“node-gyp build”
~~~ok
关于本站