相關資訊
如果您要使用的功能已經捆綁到帶有導入庫的DLL中,則可以跳過步驟1到6。
如果仍然存在鏈接錯誤,則很可能是
name mangling的問題所導致。 C++語言允許您覆蓋某些功能(例如,面向對象編程中的方法)。為了解決某些名稱衝突,C ++編譯器添加名稱修飾以便使名稱唯一化。
因此,當您在C++程式中調用C庫時,C++編譯器需要知道它不需要修改名稱。如果是這種情況,C++編譯器創建的名稱與C程式碼中的名稱不同,並提示鏈接錯誤。
為了解決該問題,您需要在與.c檔案相關的頭檔案(.h)中添加以下程式碼。
#ifdef __cplusplus
extern "C" {
#endif
/* The functions you want to keep the same in C and C++ */
#ifdef __cplusplus
}
#endif