开发者

Is there any way to change gcc compilation options for a gem?

开发者 https://www.devze.com 2023-03-21 11:16 出处:网络
I\'m struggling to install the RedCloth gem. When I type gem install RedCloth I get : […] ragel/redcloth_attributes.c.rl: In function ‘redcloth_attribute_parser’:

I'm struggling to install the RedCloth gem. When I type

gem install RedCloth

I get :

[…]
ragel/redcloth_attributes.c.rl: In function ‘redcloth_attribute_parser’:
ragel/redcloth_attributes.c.rl:26:11: error: variable ‘act’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

make: *** [redcloth_attributes.o] Error 1 
[…]

The reason is the -Werror compilation option passed to gcc in the extconf.rb of the RedCloth gem:

require 'mkmf'
CONFIG['warnflags'].gsub!(/-Wshorten-64-to-32/, '') if CONFIG['warnflags']
$CFLAGS << ' -O0 -Wall -Werror' if CONFIG['CC'] =~ /gcc/
[…]

The problem is that when I remove the开发者_运维知识库 -Werror option from the file, it reappears automatically next time I launch the "gem install" command.

How can I permanently unset the -Werror option?


Another option would be to downgrade to gcc 4.5.2, but it's not in the repositories of my Fedora 15.

And I'd rather avoid to compile it from source…

Any help much appreciated.


Had the same problem and here is the solution:

$ sudo gem install RedCloth -- --with-cflags=\"-O2 -pipe -march=native -Wno-unused-but-set-variable\"

You have to escape the quotes if you have more than one argument.


If you're using bundler, the following works:

bundle config build.RedCloth --with-cflags=\"-O2 -pipe -march=native -Wno-unused-but-set-variable\"
0

精彩评论

暂无评论...
验证码 换一张
取 消