【发布时间】:2015-08-10 17:00:04
【问题描述】:
当我执行命令包时,出现我没有的编译错误 找到了解决办法。
我使用的是 Windows 10 操作系统,Ruby 和 Rails 的版本是:
红宝石: bin: C:/RailsInstaller/Ruby2.0.0/bin/ruby.exe 版本:ruby 2.1.5p273(2014-11-13 修订版 48405)[i386-mingw32]
导轨: bin: C:/RailsInstaller/Ruby2.0.0/bin/rails.bat 版本:Rails 4.1.8
我打算在我的项目中安装的 Gem 是用于 WuBook API 集成的 wubook_wired,称为“Wired”: https://github.com/eilers/wubook_wired
出现的错误是:
Gem::Ext::BuildError: 错误: 无法构建 gem 原生扩展。 C:/RailsInstaller/Ruby2.1.0/bin/ruby.exe extconf.rb 检查expat.h ...是的 检查 -lexpat 中的 XML_ParserCreate()... 否 检查 -lxmltok 中的 XML_ParserCreate()... 否 *** extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能缺乏必要 库和/或标题。检查 mkmf.log 文件以获取更多详细信息。你可以 需要配置选项。 提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --没有-make-prog --srcdir=。 --curdir --ruby=C:/RailsInstaller/Ruby2.1.0/bin/ruby --with-perl-enc-map --without-perl-enc-map --with-expat-dir --无外籍目录 --with-expat-include --without-expat-include=${expat-dir}/include --with-expat-lib --without-expat-lib=${expat-dir}/lib --with-expatlib --没有expatlib --with-xmltoklib --没有-xmltoklib extconf 失败,退出代码 1 Gem 文件将继续安装在 C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/xmlparser-0.7.2.1 以供检查。 结果记录到 C:/RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/extensions/x86-mingw32/2.1.0/xmlparser-0.7.2.1/gem_make.out 安装 xmlparser (0.7.2.1) 时出错,Bundler 不能 继续。 在捆绑之前确保 `gem install xmlparser -v '0.7.2.1'` 成功。mkmf.log 文件为:
have_library:检查 -lexpat 中的 XML_ParserCreate()... -------------------- 否 “gcc -o conftest.exe -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/i386-mingw32 -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/ruby/backward - IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math - g -Wall -Wextra -Wno-unused-parameter -Wno-括号 -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-函数声明 conftest.c -L.-LC:/RailsInstaller/Ruby2.1.0/lib -L.-lmsvcrt-ruby210 -lexpat -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi " conftest.c:在函数“t”中: conftest.c:16:57: error: 'XML_ParserCreate' undeclared (首先在这个函数中使用) conftest.c:16:57:注意:每个未声明的标识符对于它出现的每个函数只报告一次 conftest.c:16:32:警告:变量“p”设置但未使用 [-Wunused-but-set-variable] 检查的程序是: /* 开始 */ 1:#include“ruby.h” 2: 3:#包括 4:#包括 5: 6: /*顶部*/ 7:外部int t(无效); 8: int main(int argc, char **argv) 9:{ 10:如果(argc > 1000000){ 11: printf("%p", &t); 12:} 13: 14:返回0; 15:} 16: int t(void) { void ((*volatile p)()); p = (void ((*)()))XML_ParserCreate;返回0; } /* 结尾 */ “gcc -o conftest.exe -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/i386-mingw32 -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/ruby/backward - IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math - g -Wall -Wextra -Wno-unused-parameter -Wno-括号 -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-函数声明 conftest.c -L.-LC:/RailsInstaller/Ruby2.1.0/lib -L.-lmsvcrt-ruby210 -lexpat -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi " conftest.c:在函数“t”中: conftest.c:16:1:警告:函数“XML_ParserCreate”的隐式声明 [-Wimplicit-function-declaration] c:/railsinstaller/devkit/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld。 exe:找不到-lexpat collect2.exe:错误:ld 返回 1 退出状态 检查的程序是: /* 开始 */ 1:#include“ruby.h” 2: 3:#包括 4:#包括 5: 6: /*顶部*/ 7:外部int t(无效); 8: int main(int argc, char **argv) 9:{ 10:如果(argc > 1000000){ 11: printf("%p", &t); 12:} 13: 14:返回0; 15:} 16: int t(void) { XML_ParserCreate();返回0; } /* 结尾 */ -------------------- have_library:检查 -lxmltok 中的 XML_ParserCreate() ... -------------------- 否 “gcc -o conftest.exe -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/i386-mingw32 -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/ruby/backward - IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math - g -Wall -Wextra -Wno-unused-parameter -Wno-括号 -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-函数声明 conftest.c -L.-LC:/RailsInstaller/Ruby2.1.0/lib -L.-lmsvcrt-ruby210 -lxmltok -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi " conftest.c:在函数“t”中: conftest.c:16:57: error: 'XML_ParserCreate' undeclared (首先在这个函数中使用) conftest.c:16:57:注意:每个未声明的标识符对于它出现的每个函数只报告一次 conftest.c:16:32:警告:变量“p”设置但未使用 [-Wunused-but-set-variable] 检查的程序是: /* 开始 */ 1:#include“ruby.h” 2: 3:#包括 4:#包括 5: 6: /*顶部*/ 7:外部int t(无效); 8: int main(int argc, char **argv) 9:{ 10:如果(argc > 1000000){ 11: printf("%p", &t); 12:} 13: 14:返回0; 15:} 16: int t(void) { void ((*volatile p)()); p = (void ((*)())) XML_ParserCreate;返回0; } /* 结尾 */ “gcc -o conftest.exe -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/i386-mingw32 -IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0/ruby/backward - IC:/RailsInstaller/Ruby2.1.0/include/ruby-2.1.0 -I. -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math - g -Wall -Wextra -Wno-unused-parameter -Wno-括号 -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-函数声明 conftest.c -L.-LC:/RailsInstaller/Ruby2.1.0/lib -L.-lmsvcrt-ruby210 -lxmltok -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi " conftest.c:在函数“t”中: conftest.c:16:1:警告:函数“XML_ParserCreate”的隐式声明 [-Wimplicit-function-declaration] c:/railsinstaller/devkit/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld。 exe:找不到-lxmltok collect2.exe:错误:ld 返回 1 退出状态 检查的程序是: /* 开始 */ 1:#include“ruby.h” 2: 3:#包括 4:#包括 5: 6: /*顶部*/ 7:外部int t(无效); 8: int main(int argc, char **argv) 9:{ 10:如果(argc > 1000000){ 11: printf("%p", &t); 12:} 13: 14:返回0; 15:} 16: int t(void) { XML_ParserCreate();返回0; } /* 结尾 */非常感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails xml-parsing xml-rpc