如何解决Ruby- 错误:无法构建 gem 本机扩展 gcc:错误:无法识别的命令行选项“-Wduplicated-cond”
我在通过 wsl ubuntu 在 VScode 中安装 ruby gem 时遇到问题。
具体来说,目前是 rest-client、json、pry-byebug 和 byebug。 我能够毫无问题地安装 ruval gem 和 pry gem。 我不确定是否有些缺少 gem 依赖项、需要升级,或者文件路径需要以某种方式更改。
我注意到 Ubuntu wsl 终端文件路径是“/mnt/C”。可能与它有关? 我认为 C/ 只是普通的 windows,而 /mnt/C 是相同的 Ubuntu 版本,用于访问 C/ windows 文件路径。
我的终端中不断收到如下消息:
// ♥ gem install json
Building native extensions. This Could take a while...
/usr/share/rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/open3.rb:213: warning: Insecure world writable dir /mnt/c in
PATH,mode 040777
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
current directory: /home/mjj4685mjj/.rvm/gems/ruby-2.6.1/gems/json-2.5.1/ext/json/ext/generator
/usr/share/rvm/rubies/ruby-2.6.1/bin/ruby -I /usr/share/rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0 -r ./siteconf20210404-8832-c0i3v3.rb extconf.rb
creating Makefile
current directory: /home/mjj4685mjj/.rvm/gems/ruby-2.6.1/gems/json-2.5.1/ext/json/ext/generator
make DESTDIR\= clean
current directory: /home/mjj4685mjj/.rvm/gems/ruby-2.6.1/gems/json-2.5.1/ext/json/ext/generator
make DESTDIR\=
compiling generator.c
gcc: error: unrecognized command line option '-Wduplicated-cond'
gcc: error: unrecognized command line option '-Wmisleading-indentation'
gcc: error: unrecognized command line option '-Wrestrict'
gcc: error: unrecognized command line option '-Wimplicit-fallthrough=0'
make: *** [Makefile:244: generator.o] Error 1
make Failed,exit code 2
Gem files will remain installed in /home/mjj4685mjj/.rvm/gems/ruby-2.6.1/gems/json-2.5.1 for inspection.
Results logged to /home/mjj4685mjj/.rvm/gems/ruby-2.6.1/extensions/x86_64-linux/2.6.0/json-2.5.1/gem_make.out[21:58:57]
// ♥ SandBox (main)
解决方法
这不是 /mnt/c/ 路径问题:
const vision = require('@google-cloud/vision');
const client = new vision.ImageAnnotatorClient();
const fileName = 'baba.jpg';
// Read a local image as a text document
const [result] = await client.textDetection(fileName);
const fullTextAnnotation = result.fullTextAnnotation;
console.log(`Full text: ${fullTextAnnotation.text}`);
fullTextAnnotation.pages.forEach(page => {
page.blocks.forEach(block => {
console.log(`Block confidence: ${block.confidence}`);
block.paragraphs.forEach(paragraph => {
console.log(`Paragraph confidence: ${paragraph.confidence}`);
paragraph.words.forEach(word => {
const wordText = word.symbols.map(s => s.text).join('');
console.log(`Word text: ${wordText}`);
console.log(`Word confidence: ${word.confidence}`);
word.symbols.forEach(symbol => {
console.log(`Symbol text: ${symbol.text}`);
console.log(`Symbol confidence: ${symbol.confidence}`);
});
});
});
});
});
gems 无法编译和完全安装,因为我有一个过时的 'gcc' (Homebrew) 版本。:
warning: Insecure world writable dir /mnt/c in PATH,mode 040777
解决方案:
在终端运行:compiling generator.c
gcc: error: unrecognized command line option '-Wduplicated-cond'
gcc: error: unrecognized command line option '-Wmisleading-indentation'
gcc: error: unrecognized command line option '-Wrestrict'
gcc: error: unrecognized command line option '-Wimplicit-fallthrough=0'
make: *** [Makefile:244: generator.o] Error 1
make failed,exit code 2
...并检查“gcc”或“g++”是否有任何过时
功能。
然后运行:brew outdated
升级安装完成后,我就可以正常安装 gems,我的所有程序都运行良好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。