Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

npm install wechaty-puppet-padpro 后报错 #181

Open
jansen-s opened this issue Aug 2, 2019 · 3 comments
Open

npm install wechaty-puppet-padpro 后报错 #181

jansen-s opened this issue Aug 2, 2019 · 3 comments

Comments

@jansen-s
Copy link

jansen-s commented Aug 2, 2019

1. 提供你的包版本信息

  • wechaty 版本:0.26.1
  • wechaty-puppet-padpro 版本:未知
  • node 版本: v10.16.0
  • 你使用的操作系统:macOS Mojave 10.14.6

2. Bug 描述

请用精简的语言描述你遇到的bug
在项目目录中执行npm install wechaty-puppet-padpro后,经过一段时间的等待,报了libtool的build error

3. 复现的步骤 (或者解决的步骤)

第一步:npm init
第二步:npm install wechaty
第三步:npm install wechaty-puppet-padpro

4. 期待程序运行的结果

正确安装wechaty-puppet-padpro

5. 程序实际运行的结果

请用精简的语言或者截图描述实际运行的结果(请不要在这里粘贴日志截图

6. 完整的日志信息:

通过WECHATY_LOG=silly设定环境变量,将设置log 等级为 silly,获取最详细的日志信息(默认log 等级为 info)
请提供完整的日志信息(不要只提供部分的日志截图,请复制粘贴日志内容!)

> nosql-leveldb@3.0.1 install /Users/Jansen/Job/xiaohuoban.com/robot/node_modules/nosql-leveldb > prebuild-install || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=10.16.0 runtime=node arch=x64 platform=darwin)
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/builder.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/db_impl.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/db_iter.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/filename.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/dbformat.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/log_reader.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/log_writer.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/memtable.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/repair.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/table_cache.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/version_edit.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/version_set.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/db/write_batch.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/helpers/memenv/memenv.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/port/port_posix_sse.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/block.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/block_builder.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/filter_block.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/format.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/iterator.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/merger.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/table.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/table_builder.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/table/two_level_iterator.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/arena.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/bloom.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/cache.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/coding.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/comparator.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/crc32c.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/env.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/filter_policy.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/hash.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/logging.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/options.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/status.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/port/port_posix.o
CXX(target) Release/obj.target/leveldb/deps/leveldb/leveldb-1.20/util/env_posix.o
LIBTOOL-STATIC Release/leveldb.a
Usage: /usr/local/bin/libtool [OPTION]... [MODE-ARG]...
Try 'libtool --help' for more information.
libtool: error: unrecognised option: '-static'
make: *** [Release/leveldb.a] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:198:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Darwin 18.7.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/Jansen/Job/xiaohuoban.com/robot/node_modules/nosql-leveldb
gyp ERR! node -v v10.16.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nosql-leveldb@3.0.1 install: prebuild-install || node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nosql-leveldb@3.0.1 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/Jansen/.npm/_logs/2019-08-02T07_11_31_125Z-debug.log

$ WECHATY_LOG=silly node yourbot.js

7. 其他信息

详细的debug.log文件附下:
2019-08-02T07_11_31_125Z-debug.log

[bug]

@jansen-s
Copy link
Author

jansen-s commented Aug 2, 2019

经过网络检索,发现是libtool命令的问题,可能系统安装了其他来源的libtool,没有-static参数,删除/usr/local/bin/libtool后,用ln -s重新链接了/Library/Developer/CommandLineTools/usr/bin/libtool后编译通过了,但同时也出现了很多个代码警告,警告如下:
CXX(target) Release/obj.target/leveldown/src/batch.o
In file included from ../src/batch.cc:5:
In file included from ../src/database.h:19:
../src/leveldown.h:16:17: warning: 'ToObject' is deprecated [-Wdeprecated-declarations]
return (!obj->ToObject().IsEmpty()
^
/Users/Jansen/.node-gyp/10.16.0/include/node/v8.h:2455:10: note: 'ToObject' has been explicitly marked
deprecated here
inline V8_DEPRECATED("Use maybe version", Local ToObject() const);
^
/Users/Jansen/.node-gyp/10.16.0/include/node/v8config.h:327:29: note: expanded from macro 'V8_DEPRECATED'
declarator attribute((deprecated))

@ryanbinxu
Copy link

在mac系统中,按照jansen-s 提供的方式,依然会出现编译不通过,大部分错误由于ToObject函数导致。

@su-chang
Copy link
Member

”可能系统安装了其他来源的libtool“—— jansen-s

可能是这个问题导致的,可以尝试如下操作解决。相关链接#1 相关链接#2

brew unlink libtool
rm -rf /usr/local/bin/libtool
which libtool
=>  /usr/bin/libtool

历史遗留问题:由于 ToObject 方法目前已经被 V8弃用,但是我们项目中所依赖的包 leveldb 仍然在使用,因此会导致编译存在警告的问题。但是不影响 wechaty-puppet-padpro 的正常使用。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants