背景是我們有一個linux下的多媒體播放器項目,該程序是用c語言實現的。目前要引入一個功能模塊,目的是使其對流媒體進行支持。經過挑選,我們選擇了一個名爲live555的流媒體庫,該庫是用c++寫成的。
c與c++混編的時候除了在源文件內容上要注意的地方,比如命名規則中c++要加上 extern "c" ,防止編譯過程中符號名改變。(更多規則見More effective c++中的相關條款)
還需要注意的是關於編譯器的選擇問題。如果工程中既有c源碼又有c++源碼,有兩種方法:
1. 將gcc換成g++;
2. 在gcc後加上 -lstdc++ 選項。