GDAL (存在する場合) を使用できる C++ プログラムを作成しています。システム内の GDAL の存在を確認できますが、プログラムが GDAL を使用してコンパイルされている場合、GDAL ライブラリを含める/含めないようにプログラムをどのようにコーディングする必要がありますか?
どうもありがとう、カルロス。
一般的に言えば、アプリケーションを共有オブジェクト (DLL) にリンクする場合、共有オブジェクトが見つからない場合、プログラムは起動に失敗します。起動時に SO をロードする以外に別の方法があるかどうかはわかりません。ライブラリへのハンドルを取得した場合は、dlsym (または Windows では GetProcAddress) を使用して必要な関数を取得し、その方法で呼び出します。 .
私は CMake を使用していませんが、ライブラリが利用可能な場合は、それをリンクして、マクロを定義するコンパイラにフラグを渡すこともできます (例: -DHAVE_GDAL
)。次に、ソースでプリプロセッサを使用してチェックしHAVE_GDAL
、GDAL 機能が定義されている場合にのみ使用します。
ソースで次のようなもの:
#ifdef HAVE_GDAL
// Use GDAL functionality
#else
// Use something else
#endif