如何在我的c ++程序中使用GDAL库作为可选项?

时间:2012-04-19 07:59:13

标签: c++ gdal

我正在创建一个可以使用GDAL(如果存在)的c ++程序。我可以检查系统中是否存在GDAL,但如果我的程序是使用GDAL编译的,我需要如何编写程序来包含/不包含GDAL库?

非常感谢, 卡洛斯。

2 个答案:

答案 0 :(得分:1)

虽然我没有使用过CMake,但是如果库可用,你可以链接它,并将标志传递给定义宏的编译器(例如-DHAVE_GDAL)。然后在您的源代码中使用预处理器检查HAVE_GDAL并仅在定义时使用GDAL功能。

您的来源中有这样的内容:

#ifdef HAVE_GDAL
// Use GDAL functionality
#else
// Use something else
#endif

答案 1 :(得分:0)

一般来说,如果将应用程序链接到共享对象(DLL),如果共享对象丢失,程序将无法启动。我不确定是否还有另一种方法,而不是简单地在启动时加载SO,如果你得到了库的句柄,使用dlsym(或Windows上的GetProcAddress)来获取你需要的函数,并以这种方式调用它们

相关问题