2011-02-09 10 views
0

私は実際にC/C++ Linking magicの専門家ではありません。 g ++とCygwinはどちらも、初心者ではありません。C++ライブラリをリンクできるようにC

私はモジュールとしてCライブラリを受け付ける実行可能ファイル(私の場合はApache Server)を持っているとします。例: 私はC++でコーディング根性、そして輸出のみバニラ機能を行うとコンパイルされたファイルはlibMyServer.so

は、クラスの例静的メンバ関数のために私はCExportToCを呼びたい...私はこの意志行う場合リンクマジック私のライブラリを作るlibMyServerは、Cライブラリを要求するプログラムから到達可能ですか?

答えて

2

あなたはリンク時にそうしません。コードを生成するときには、コンパイル時に名前をマングルしないように宣言します(もちろん、オーバーロードは許可されません)。あなたが公開したいものの宣言をCに入れてextern "C" { ... }ブロックに入れる。例えば、 FAQ。あなたがPITAで多くの仕事をして喜んでいない限り、クラスはここから運がずっと離れています。そして、単一のコンパイラライターがコードを壊す可能性があります(コンパイルエラーではなく、実行時のバグでのみ表示されます)。

+0

FAQリンクのthx。私はそこに欲しいものがすべてあるようです。 –

関連する問題