安装 Thin (1.7.2) 时发生错误

Dor*_*ian 14 ruby thin bundler

我尝试安装瘦 Web 服务器 1.7.2 版,但出现错误

与日志:

thin.c:359:10: error: implicit declaration of function 'thin_http_parser_has_error' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
  return thin_http_parser_has_error(http) ? Qtrue : Qfalse;
         ^
thin.c:374:10: error: implicit declaration of function 'thin_http_parser_is_finished' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
  return thin_http_parser_is_finished(http) ? Qtrue : Qfalse;
         ^
9 errors generated.
make: *** [thin.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/Users/dorianmarie/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thin-1.7.2 for inspection.
Results logged to
/Users/dorianmarie/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-19/2.7.0/thin-1.7.2/gem_make.out

An error occurred while installing thin (1.7.2), and Bundler cannot continue.
Make sure that `gem install thin -v '1.7.2' --source 'https://rubygems.org/'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

Dor*_*ian 30

禁用错误修复它:

bundle config build.thin --with-cflags="-Wno-error=implicit-function-declaration"
Run Code Online (Sandbox Code Playgroud)

  • 这是一个临时修复。有关说明,请参阅 /sf/ask/4429508611/。看起来这个问题已经在thin的master分支中修复了,请参阅https://github.com/macournoyer/thin/issues/370 (3认同)

boy*_*oyd 9

对我有用的解决方案略有不同。我必须在 Big Sur 11.3.1 上使用 rbenv 为我的特定 gem 版本运行以下命令。我在这里添加了对我的特定错误和解决方案的更深入的解释。

gem install thin -v '1.6.4' -- --with-cflags="-Wno-error=implicit-function-declaration"
Run Code Online (Sandbox Code Playgroud)