[英]Unwanted warning message with g++
我正在嘗試為Ruby編寫c ++擴展。 除了主文件,我有一個文件extconf.rb
:
require "mkmf"
$libs += " -lstdc++ "
create_makefile("file_name")
並且,在做了ruby extconf.rb
,當我嘗試通過鍵入make
使用g++
編譯它時,我收到警告:
cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++
我讀到它沒有害處,但有沒有辦法避免這種警告? 有同樣的問題一個人在這里 ,但解決方案無法找到。
在你的extconf.rb
試試這個:
$warnflags.gsub!('-Wdeclaration-after-statement', '') if $warnflags
if $warnflags
是必需的因為mkmf
在Ruby 1.9.3中發生了變化; 沒有它你會得到undefined method `gsub!' for nil:NilClass
undefined method `gsub!' for nil:NilClass
如果你試圖在Ruby 1.9.2上構建undefined method `gsub!' for nil:NilClass
。 您不應該在1.9.2中獲得c ++警告:Ruby使用的默認警告在1.9.3中已更改,並且已添加這些警告。
更新:
這可能更好:
CONFIG['warnflags'].gsub!('-Wdeclaration-after-statement', '')
$warnflags
從中填充,但這不需要if $warnflags
<1.9.3。
編輯生成的Makefile
運行后創建create_makefile
並刪除-Wdeclaration-after-statement
在那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.