簡體   English   中英

帶有g ++的不需要的警告消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM