LINK : warning LNK4089: all references to “ODBC32.dll” discarded by /OPT:REF
LINK : warning LNK4089: all references to “ADVAPI32.dll” discarded by /OPT:REF
LINK : warning LNK4089: all references to “SHELL32.dll” discarded by /OPT:REF
LINK : warning LNK4089: all references to “comdlg32.dll” discarded by /OPT:REF
錯誤原因:
由於打開了優化選項,而且程式中包含或加入了ODBC32.dll、ADVAPI32.dll、SHELL32.dll、comdlg32.dll,但是卻沒有調用該庫中的任何函數或方法, 所以系統給個通知,這有助於減小體積。
這個問題一般出現在release版中,當release版編譯時會對代碼進行優化,將程式中實際上並沒用到的,而在project中連結了的動態庫放棄而不編譯到project中去。可在project設定中的Link中的input中ingore libraries中將該庫的lib檔案名輸入。
解決方法:
- 其實不用管這種警告,因為它不會影響程式。
- 如下方法可以去除警告
- 在project->settings->linking->projects options最後面加上/OPT:NOREF
- #pragma comment(linker, "/ignore:4089") 取消警告
- #pragma warning(disable: 4089) 取消警告
沒有留言:
張貼留言