有没有办法让extconf.rb不使用某些警告标志?

时间:2011-06-25 14:48:02

标签: c ruby

我刚刚将gcc从默认的4.2.1更新为4.5。但是当我运行ruby extconf.rb时,我得到一个gcc无法识别的警告标志。

cc1: error: unrecognized command line option "-Wshorten-64-to-32"

有没有办法编辑extconf.rb文件,告诉它不要使用这个警告标志,还是有办法让gcc识别它?这是我的gcc版本,如果它有用:

 $  gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin10/4.5.3/lto-wrapper
Target: x86_64-apple-darwin10
Configured with: ../gcc-4.5.3/configure --prefix=/opt/local --build=x86_64-apple-darwin10 --enable-languages=c,c++,objc,obj-c++,fortran,java --libdir=/opt/local/lib/gcc45 --includedir=/opt/local/include/gcc45 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-4.5 --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.5 --with-gxx-include-dir=/opt/local/include/gcc45/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --enable-stage1-checking --disable-multilib --enable-fully-dynamic-string
Thread model: posix
gcc version 4.5.3 (GCC) 

1 个答案:

答案 0 :(得分:1)

mkmf使用CONFIG中定义的字符串表生成makefile配置,警告标志位于CONFIG['warnflags'],因此您可以执行类似

的操作
CONFIG['warnflags'].slice!(/ -Wshorten-64-to-32/)

在调用create_makefile之前删除特定的警告标志。