「warning c4100: … unreferenced formal parameter.」
qt sdk (vc2008)在使用qmake生成makefile檔案時,缺省會開啟c4100的編譯告警開關。就我們的開發實踐來說,c4100實在是個多餘的告警,尤其是在c++程式中,我們經常定義一些虛函式等作為介面類,這些虛函式本身基本是空函式,由派生類過載出具體的實現。一旦放開c4100告警,vc編譯器就看這些函式中沒有引用的形參非常不爽,頻頻給出告警,實在是煩人。
我們可以在標頭檔案中要求編譯器忽略c4100告警:
#pragma warning( push )
#pragma warning( disable : 4100 )
void fun1(…){}
#pragma warning( pop )
這樣做也有不好的一面,我們不得不修改.h檔案,包括一些第三方庫的標頭檔案。另外,這似乎也破壞了跨平台的特性,和vc編譯器繫結過緊(?不清楚其他編譯器,例如gcc,是否也支援這種預處理指令)。
我們決定直接關掉c4100告警,修改以下檔案(qt安裝在d:\qt\4.6.2目錄):
d:\qt\4.6.2\mkspecs\win32-msvc2008\qmake.conf
在這個檔案中,找到qmake_cxxflags_warn_on,將它後面的-w34100刪除掉。
然後回到自己的工程,重新用qmake生成makefile,此時再編譯,就不會有c4100告警了。
我們團隊有著十幾年的**程式化交易演算法與軟體研發經驗,基於c++ qt技術研發了具有自主智財權的**智慧型程式化交易一體化系統平台,該平台封裝了二百多個量化指標,具有低時延、高效能、小滑點、可定製和跨平台的特點。團隊致力於將人工智慧技術與傳統的程式化交易技術相結合為客戶提供靈活可定製的**智慧型程式化交易服務和產品。
C 反射與編譯
首先了解下,如何區分編譯生成的 dll的版本 方法1 ilspy反編譯工具 通過 assembly屬性,release版本沒有或僅有如下一種屬性 assembly debuggable debuggableattribute.debuggingmodes.ignoresymbolstoreseque...
C語言編譯與鏈結
預處理過程主要處理那些源 檔案只能夠的以 開始的預編譯指令。比如 include define 等,主要處理規則如下 1 將所有的 define 刪除,並且展開所有的巨集定義 2 處理所有條件預編譯指令,比如 if ifdef elif else endif 3 處理 include 預編譯指令,將...
C與C 編譯器Android交叉編譯配置
目錄 目錄 一 gcc與g 編譯器 二 使用linux自帶的gcc或g 編譯原始檔生成的可執行檔案 三 編譯android手機可用的可執行檔案 四 編譯動態庫 五 編譯靜態庫 了解c c 編譯器的基本使用,能夠在後續移植第三方庫進行交叉編譯時,清楚了解應該傳遞什麼引數 gcc與g 是我比較常用的編譯...