我正在尝试使用 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