首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gem安装mailcatcher失败,错误:安装mailcatcher时出错: ERROR:无法构建gem本机扩展

gem安装mailcatcher失败,错误:安装mailcatcher时出错: ERROR:无法构建gem本机扩展
EN

Stack Overflow用户
提问于 2020-11-03 19:49:38
回答 2查看 2.9K关注 0票数 11

我在macOS Catalina 10.15.7上,为我的项目使用rbenv (版本rbenv 1.1.2-36-g60c9339 )和ruby verion 2.6.3 (ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin19]ruby -v的输出)。我需要安装mailcatcher来检查我的应用程序生成的电子邮件。在我的项目文件夹中运行gem install mailcatcher时,该命令失败,并显示以下错误:

代码语言:javascript
运行
复制
➜ gem install mailcatcher
Building native extensions. This could take a while...
ERROR:  Error installing mailcatcher:
    ERROR: Failed to build gem native extension.

    current directory: /Users/karansapolia/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/thin-1.5.1/ext/thin_parser
/Users/karansapolia/.rbenv/versions/2.6.3/bin/ruby -I /Users/karansapolia/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20201103-23665-1tzqkaj.rb extconf.rb
checking for main() in -lc... yes
creating Makefile

current directory: /Users/karansapolia/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/thin-1.5.1/ext/thin_parser
make "DESTDIR=" clean

current directory: /Users/karansapolia/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/thin-1.5.1/ext/thin_parser
make "DESTDIR="
compiling parser.c
parser.rl:112:17: warning: comparison of integers of different signs: 'long' and 'unsigned long' [-Wsign-compare]
  assert(pe - p == len - off && "pointers aren't same distance");
         ~~~~~~ ^  ~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/assert.h:93:25: note: expanded from macro 'assert'
    (__builtin_expect(!(e), 0) ? __assert_rtn(__func__, __FILE__, __LINE__, #e) : (void)0)
                        ^
parser.rl:142:7: error: implicit declaration of function 'thin_http_parser_has_error' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  if (thin_http_parser_has_error(parser) ) {
      ^
parser.rl:142:7: note: did you mean 'http_parser_has_error'?
./parser.h:44:5: note: 'http_parser_has_error' declared here
int http_parser_has_error(http_parser *parser);
    ^
parser.rl:144:14: error: implicit declaration of function 'thin_http_parser_is_finished' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  } else if (thin_http_parser_is_finished(parser) ) {
             ^
1 warning and 2 errors generated.
make: *** [parser.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/karansapolia/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/thin-1.5.1 for inspection.
Results logged to /Users/karansapolia/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/2.6.0/thin-1.5.1/gem_make.out

安装其他gem可以完美地工作。gem install mailman运行得非常完美。仅对mailcatcher失败。

如何安装mailcatcher而不出现错误?

EN

回答 2

Stack Overflow用户

发布于 2020-11-10 08:58:05

我运行以下命令,它对我起作用了

gem安装邮件捕获器--with-cflags="-Wno-error=implicit-function-declaration"

票数 35
EN

Stack Overflow用户

发布于 2020-11-03 20:15:56

似乎在安装瘦解析器时有一个问题,我在github上发现了一个已经打开的问题,这位贡献者提出了一个解决方案,here

确保在mailcatcher之前安装thin。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64662290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档