C++ で記述された静的ライブラリがあり、データ形式を記述する構造体があります。
struct Format{
long fmtId;
long dataChunkSize;
long headerSize;
Format(long, long, long);
bool operator==(Format const & other) const;
};
一部のデータ形式は広く使用されており{fmtId=0, dataChunkSize=128, headerSize=0}
、{fmtId=0, dataChunkSize=256, headerSize=0}
一部のデータ構造クラスはコンストラクターで形式を受け取ります。参照によって渡すことができるいくつかのグローバルFormat
メンバーなど、これらの広く使用されている形式の何らかのショートカットが必要です。gFmt128, gFmt256
次のような .cpp ファイルでそれらをインスタンス化します
Format gFmt128(0, 128, 0);
そして.hには
extern Format gFmt128;
また、メインモジュールで宣言Format const & Format::Fmt128(){return gFmt128;}
して使用しようとしています。
しかし、lib を使用するメイン モジュールで実行しようとすると、リンカは未解決の external について不平を言いgFmt128
ます。
ライブラリにこれらのグローバル変数を「エクスポート」させて、他のモジュールから使用できるようにするにはどうすればよいですか?