skip to main
|
skip to sidebar
seanrecollect
2010年6月7日 星期一
找不到要link的function?
在使用Visaul C++開發公司元件時候,發生個怪問題,由於是從open source修改,想先將code 編譯成library的形式,但是當在使用某些function的時候卻出現link error的錯誤,檢查了相關的code確定都有,不應該會出現link不到的問題。之後與其他的code比對後,發現要使用的function少了一段
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
看網路上的說明
原因是C++它有一個複載(overloading)的功能,也就是說同樣的函式名稱可以有多個定義只要參數簽名不同即可。
當我們希望C++不要偷換函式名時該怎麼辦? 於是就有了extern "C" 這個關鍵字組出現了。
這個字組就是請C++不要自己又偷天換日,請它保留原名。
所以最後將此段code加上後,就link成功了
沒有留言:
張貼留言
較新的文章
首頁
訂閱:
張貼留言 (Atom)
追蹤者
網誌存檔
▼
2010
(2)
▼
6月
(2)
IIS中設定SSL雙向認證
找不到要link的function?
關於我自己
Sean Hung
檢視我的完整簡介
沒有留言:
張貼留言