2016-03-31 40 views
1

bcc32プロジェクトでC++ 11ライブラリを使用する必要があります。 ライブラリはbcc32でコンパイルされませんが、bcc32cではコンパイルされません。bcc32でbcc32cで構築された静的なライブラリを使用する方法

このライブラリをDLLに公開しないようにしたいと思います。ライブラリはbcc32cでコンパイルされましたが、bcc32プロジェクトではbcc32c静的ライブラリを使用できませんでした。

答えて

3

スタティックライブラリはコンパイラ固有です。あるコンパイラで静的なlibを作成して別のコンパイラで使用することはできません。あなたの唯一のオプションは、静的なlibをDLLの中にラップするか、ライブラリのコードを変更して、bcc32でコンパイルできないものに対処することです。

+0

痛い一週間の後、私はあなたが正しいと結論づけました。 * bcc32c *と* bcc32 *は互換性がないだけでなく、DLLのクラスを共有することも、extern "C"関数だけを共有することもできません。私はそれがエンバカデロがボランをあきらめた理由だと思います。 – xvan

+0

@ xvan:内部アーキテクチャーが古く、限られていて、C++ 11以降のバージョンのC++をサポートすることができないため、Borlandコンパイラで「あきらめました」。 BorlandとEmbarcaderoのコンパイラ間の互換性の欠如とは何の関係もありませんでした。 Visual StudioやGCCなど、どのコンパイラでも静的なlibをコンパイルすることはできません。そして、それをEmbarcaderoコンパイラで使用したり、その逆もできます。同じ*コンパイラの複数バージョン間で静的ライブラリを使用することさえできないことがあります。私が言ったように、静的ライブラリは特定のコンパイラに固有のものです。それと一緒に生きる。 –

関連する問題