在 fedora 21 上使用 mrsid DSDK 构建 gdal

在 fedora 21 上使用 mrsid DSDK 构建 gdal

我正在尝试使用 mrsid DSDK 从源代码构建 gdal 1.11.2,使 gdal 能够读取 mrsid 文件。我做了所有必需的事情,运行 make 后,它向我显示以下错误消息:

GNUmakefile:46: recipe for target 'gdalinfo' failed
make[1]: *** [gdalinfo] Error 1
make[1]: Leaving directory '/home/fedora/Downloads/gdal-1.11.2/apps'
GNUmakefile:69: recipe for target 'apps-target' failed
make: *** [apps-target] Error 2

因此,任何遇到同样问题的人请帮助我,我已经搞乱了这个问题近一周,并到处搜索。

更新:我认为 MrSID DSDK 有问题。

/bin/ld: warning: libtbb.so.2, needed by /home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so, not found (try using -rpath or -rpath-link)
/home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so: undefined reference to `tbb::pipeline::pipeline()'
/home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so: undefined reference to `tbb::pipeline::add_filter(tbb::filter&)'
/home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so: undefined reference to `tbb::pipeline::run(unsigned long)'
/home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so: undefined reference to `typeinfo for tbb::filter'
/home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so: undefined reference to `tbb::filter::~filter()'
/home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so: undefined reference to `tbb::task_scheduler_init::default_num_threads()'
/home/fedora/Downloads/MrSID_DSDK-9.1.0.4045-linux.x86-64.gcc41/Raster_DSDK/lib/libltidsdk.so: undefined reference to `tbb::pipeline::~pipeline()'
collect2: error: ld returned 1 exit status
GNUmakefile:46: recipe for target 'gdalinfo' failed
make[1]: *** [gdalinfo] Error 1
make[1]: Leaving directory '/home/fedora/Downloads/gdal-1.11.2/apps'
GNUmakefile:69: recipe for target 'apps-target' failed
make: *** [apps-target] Error 2

答案1

我之前遇到过同样的问题。我可以通过将这一行添加到我的设置中来解决这个问题:

export LD_LIBRARY_PATH=/path/to/Raster_DSDK/lib:$LD_LIBRARY_PATH

关联:https://gist.github.com/oeon/6527004(不是我的工作,只是一个乐于助人的人)

答案2

您缺少 tbb 库。

tbb.i686 : The Threading Building Blocks library abstracts low-level threading
         : details
tbb-devel.i686 : The Threading Building Blocks C++ headers and shared
               : development libraries
tbb-doc.i686 : The Threading Building Blocks documentation

尝试

apt-get install libtbb-dev

相关内容