我试图安装nokogiri宝石,但它说:
libxml2 is missing. Please locate mkmf.log to investigate how it is failing.
当我尝试使用brew安装libxml2时,它会说:
Warning: libxml2 2.9.5 is already installed
早些时候,它说它正在安装一个仅限keg的版本,因为macOS已经有了一个版本的libxml2。
因此,gem无法找到libxml2的任何副本,但brew找到2?
如何告诉gem在哪里找到libxml2?
看着mkmf.log,我看到它似乎不知道iconv?
have_iconv?: checking for iconv using --with-opt-* flags... -------------------
- yes
"gcc -o conftest -I/Users/brianp/.rvm/rubies/ruby-2.1.10/include/ruby-2.1.0/x86_64-darwin16.0 -I/Users/brianp/.rvm/rubies/ruby-2.1.10/include/ruby-2.1.0/ruby/backward -I/Users/brianp/.rvm/rubies/ruby-2.1.10/include/ruby-2.1.0 -I. -I/usr/local/opt/libyaml/include -I/usr/local/opt/readline/include -I/usr/local/opt/libksba/include -I/usr/local/opt/openssl/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wextra-tokens -fno-common -pipe -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline conftest.c -L. -L/Users/brianp/.rvm/rubies/ruby-2.1.10/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/openssl/lib -L. -fstack-protector -L/usr/local/opt/libyaml/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/openssl/lib -lruby.2.1.0 -lpthread -ldl -lobjc "
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_main in conftest-311f4b.o
"_iconv_open", referenced from:
_main in conftest-311f4b.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <stdlib.h>
4: #include <iconv.h>
5:
6: int main(void)
7: {
8: iconv_t cd = iconv_open("", "");
9: iconv(cd, NULL, NULL, NULL, NULL);
10: return EXIT_SUCCESS;
11: }
/* end */
再次,它说我有iconv,但它崩溃了吗?
我必须误解某处的信息。