無法解析的外部符號_imp_fprintf和_imp__iob_func

遇到_imp_fprintf和_imp__iob_func無法解析的問題,根本原因是程序中使用到的庫和現在程序編譯的環境不一樣。舉個例子,比如你的程序用到了libcurl.dll這個動態庫,但是這個動態庫是在VS 2013的工具集下編譯的,而你的程序現在在VS2017的工具集下編譯,那麼就有可能引發這個問題。工具集查看如圖:
在這裏插入圖片描述
既然我們已經知道了問題的原因,那麼接下來說說常見的三種解決方案:
1.最佳的方案當時是在和程序同樣的運行環境下編譯下使用到的庫,然後用新生成的庫替換原來的庫就可以了。
2.如果沒有第三方庫的源碼時,也可以將程序的環境平臺工具集試下。
3.通過一些編譯參數的配置消除錯誤。

  • 引入legacy_stdio_definitions.lib
    在這裏插入圖片描述
  • 增加宏定義 LIBLICENSE_AS_STATIC_LIB
  • 在這裏插入圖片描述
  • 消除其他錯誤,如“模塊對於SAFESEH映像是不安全的”
    -在這裏插入圖片描述
    然後再次編譯就可以了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章