Nokogiri 安装错误并在 mac os x 14 Sonova 上失败

问题描述 投票:0回答:1

我正在尝试使用 sonova 14.4 和我的 ruby 项目在 x86 intel mac 上安装旧版本的 nokogiri (1.6.8.1),但我在捆绑安装或 gem 安装 nokogiri 时遇到问题

xml_document.c:46:25: error: incompatible function pointer types passing 'int (xmlNodePtr, xmlNodePtr, xmlDocPtr)' (aka 'int (struct _xmlNode *, struct _xmlNode *,
struct _xmlDoc *)') to parameter of type 'st_foreach_callback_func *' (aka 'int (*)(unsigned long, unsigned long, unsigned long)')
[-Wincompatible-function-pointer-types]
  st_foreach(node_hash, dealloc_node_i, (st_data_t)doc);
                        ^~~~~~~~~~~~~~
/Users/username/.rvm/rubies/ruby-2.7.8/include/ruby-2.7.0/ruby/st.h:141:57: note: passing argument to parameter here
int rb_st_foreach(st_table *, st_foreach_callback_func *, st_data_t);
                                                        ^

已尝试使用系统库(如 libxml2-dev 和 libxslt1-dev)、安装和更新 xcode 命令行权限等常见修复,但失败了。我也尝试过使用

gem install nokogiri -v '1.6.8.1' -- --with-cflags="-Wno-incompatible-function-pointer-types"

但无济于事。

在 m2 macbook 上也会遇到此错误(也在 sonova 上运行)。我相信这是 xcode 编译 gem 中的 c 文件的问题。

有关更多详细信息,该项目正在 ruby 2.7.8 上运行。经过我自己的尝试和错误,我只能安装nokogiri版本1.11及以上,但我需要使用版本1.6来完成这个项目

任何可能导致解决此问题的帮助或指示将不胜感激! :)

ruby xcode macos rvm nokogiri
1个回答
0
投票

我刚刚遇到了这个问题,运行

brew install llvm@15
为我解决了这个问题。希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.