2011-02-09 76 views
0

我真的不是C/C++鏈接魔術方面的專家。 g ++和Cygwin都沒有,確實是一個新手。鏈接C++庫,以便它可以調用C

想象一下,我有一個可執行文件(在我的情況下是Apache服務器),它接受C庫作爲模塊。 例如編譯後的文件libMyServer.so

如果我膽量在C++編碼,並出口只有香草功能,一類的例子靜態成員函數我會打電話CExportToC ......如果我這樣做了會鏈接魔術讓我的圖書館libMyServer從請求C庫的程序可以訪問?

回答

2

你不會在鏈接時做到這一點,你向編譯器聲明不要在生成代碼時(這當然不允許重載)破壞名稱。把你想要公開的東西的聲明放到一個extern "C" { ... }塊中。見例如FAQ。除非你願意做大量的工作並與PITA生活在一起,否則這裏的課程幾乎不走運。即使如此,單個編譯器編寫者也可能會破壞您的代碼(只能以運行時錯誤顯示,而不是編譯錯誤)。

+0

thx爲FAQ鏈接。這似乎是我想要的。 – 2011-02-09 17:11:07

相關問題