關於lib靜態鏈結問題

2021-07-22 06:51:28 字數 423 閱讀 5405

在vc中

error lnk2019: 無法解析的外部符號 _sscanf

說明lib中用到這個函式,但這個函式卻沒有定義實現。直接在vs2013及vs2015中均無法搜尋到有 宣告 _sscanf 的檔案。

有什麼辦法能鏈結到 _sscanf 的實現函式?或者因為sscanf、sscanf_s這樣的函式在系統中有,能不能讓lib中的_sscanf替換成sscanf? 用#define _sscanf sscanf 似乎不起作用。

解決方案找到了。

在vs2015工程選項,鏈結器附加依賴項裡面新增legacy_stdio_definitions.lib即可。

出現這個問題的原因是vs2015預設編譯時將許多標準庫採用內聯方式處理,因而沒有可以鏈結的標準庫檔案,所以要專門新增標準庫檔案來鏈結標準庫中的函式。

參考:

關於lib庫的版本問題

源文件 msc ver 定義編譯器的版本。下面是一些編譯器版本的 msc ver 2的鏈結 ms vc 10.0 msc ver 1600 ms vc 9.0 msc ver 1500 ms vc 8.0 msc ver 1400 ms vc 7.1 msc ver 1310 ms vc 7.0 m...

動態鏈結庫(dll)與靜態連線庫(lib)

一 前言 dll dynamic 動態鏈結庫,包含多個程式執行的 和資料,程式執行時是需要使用dll lib static 靜態鏈結庫,包含dll中各函式的入口資訊,在程式編譯時用到 動態連線庫可以使設計者隱藏函式的具體實現,便噶增加 的復用性 動態鏈結庫參與的程式中,lib檔案和dll檔案都要用到...

動態鏈結庫dll,靜態鏈結庫lib, 導入庫lib

目前以lib字尾的庫有兩種,一種為靜態鏈結庫 static libary,以下簡稱 靜態庫 另一種為動態連線庫 dll,以下簡稱 動態庫 的導入庫 import libary,以下簡稱 導入庫 靜態庫是乙個或者多個obj檔案的打包,所以有人乾脆把從obj檔案生成lib的過程稱為archive,即合併...