0

GDAL (存在する場合) を使用できる C++ プログラムを作成しています。システム内の GDAL の存在を確認できますが、プログラムが GDAL を使用してコンパイルされている場合、GDAL ライブラリを含める/含めないようにプログラムをどのようにコーディングする必要がありますか?

どうもありがとう、カルロス。

4

2 に答える 2

0

一般的に言えば、アプリケーションを共有オブジェクト (DLL) にリンクする場合、共有オブジェクトが見つからない場合、プログラムは起動に失敗します。起動時に SO をロードする以外に別の方法があるかどうかはわかりません。ライブラリへのハンドルを取得した場合は、dlsym (または Windows では GetProcAddress) を使用して必要な関数を取得し、その方法で呼び出します。 .

于 2012-04-19T08:16:10.707 に答える
0

私は CMake を使用していませんが、ライブラリが利用可能な場合は、それをリンクして、マクロを定義するコンパイラにフラグを渡すこともできます (例: -DHAVE_GDAL)。次に、ソースでプリプロセッサを使用してチェックしHAVE_GDAL、GDAL 機能が定義されている場合にのみ使用します。

ソースで次のようなもの:

#ifdef HAVE_GDAL
// Use GDAL functionality
#else
// Use something else
#endif
于 2012-04-19T08:25:31.447 に答える