我有一個程序,它調用某些庫函數。我可以成功編譯GCC。然而,當我切換到G ++ 4.7(因爲我需要添加在它的C++代碼),我得到G ++抱怨「未定義的引用」,而GCC成功
undefined reference to <a function name here>
編譯命令是這樣的:
<gcc or g++> foo.c -o foo <path-to-a-static-library>.a -l<the library>
含有的庫函數我打電話是由C寫的。
我該如何解決?用G ++重新編譯庫?這很糟糕,因爲我們有其他C程序使用該庫。
名稱mangling !!!查找'extern「C」'... – 2014-10-26 22:47:07
@πάνταῥεῖThx。我搜索了一個結果,如「如果需要在C++中使用,C代碼頭應該包含在extern中」。那麼,如果圖書館沒有那個外部C,我什麼都不能做? – 2014-10-26 23:01:53
@PengZhang do'extern「C」{「{」} #include「library.h」 }'您的C++代碼 – 2014-10-26 23:04:43