CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决
CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决
这是gdal可能会用到的额外的包,按自己需要先提前编译。
这里的话我主要用了proj,Libtiff,Geotiff,Geos,Hdf5这5个包,基本能满足需要
安装步骤
新建一个安装目录:
cd /home/Elam
mkdir gdalsrc
cd gdalsrc
编译额外包:
1.proj
yum install gcc-c++
wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz
tar -zxvf proj-4.8.0.tar.gz
cd proj-4.8.0
mkdir build
./configure --prefix=/home/Elam/gdalsrc/proj-4.8.0/build
# compile
make -j
# install into build dir
make install
创建一个统一的添加环境变量的文件夹:
cd /home/Elam/gdalsrc
mkdir envsh
cd envsh
vim export_path.sh
添加下面两行代码
export LD_LIBRARY_PATH="/home/Elam/gdalsrc/proj-4.8.0/build/lib:$LD_LIBRARY_PATH"
export PATH="/hoem/Elam/gdalsrc/proj-4.8.0/build/bin:$PATH"
可以source export_path.sh 然后键入proj看看是否编译成功
2.libtiff
yum install gcc-c++ zlib-devel libjpeg-turbo-devel
cd /home/Elam/gdalsrc
wget http://download.osgeo.org/libtiff/tiff-4.0.9.tar.gz 最新版本是4.0.9
tar -zxvf tiff-4.0.9.tar.gz
cd tiff-4.0.9
ls一下发现build文件夹已经存在,因此不需要重新创建直接configure
./configure --prefix=/home/Elam/gdalsrc/tiff-4.0.9/build/ \
--exec-prefix=/home/Elam/gdalsrc/tiff-4.0.9/build
make -j
make check
# install to build dir
make install
# confirm install
./build/bin/tiffinfo
进入刚才创建的export_path添加新的环境变量,如下图:
source一下
3.Geotiff
在gdalsrc目录下
wget http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-1.4.2.tar.gz
tar -xvfz libgeotiff-1.4.2.tar.gz
cd libgeotiff-1.4.2/
mkdir build
./configure --prefix=/home/Elam/gdalsrc/libgeotiff-1.4.2/build \
--with-proj=/home/Elam/gdalsrc/proj-4.8.0/build \
--with-libtiff=/home/Elam/gdalsrc/tiff-4.0.9/build \
--with-zlib --with-jpeg
# compile
make -j
# install into build dir
make install
进入export_path添加新的环境变量,如下图:
source一下
4.Geos
yum install gcc-c++ swig python-devel
cd /home/Elam/gdalsrc
wget http://download.osgeo.org/geos/geos-3.6.2.tar.bz2
tar -xvjf geos-3.6.2.tar.bz2
cd geos-3.6.2
mkdir build
./configure --prefix=/home/Elam/gdalsrc/geos-3.6.2/build --enable-python
# compile
make -j$threads
make check
# install into build dir
make install
# check install
./build/bin/geos-config --version
gdal编译过程中碰到的问题主要出现在编译这个库中
错误:
./configure --prefix=/home/Elam/gdalsrc/geos-3.6.2/build --enable-python
configure出现cannot find Python library path错误:
解决方法:
vim configure
在左下角输入/cannot find Python library path
回车
找到对应行附近
[图片上传失败...(image-5ecfa3-1528652621967)]
将libpython$PYTHOH_VERSION改成你自己对应的.so和.a版本(具体版本可以到上面include路径同一路径下lib文件夹中查看)
如上 我改成了libpython3.6m
修改后:wq
重新configure
继续修改configure文件
[图片上传失败...(image-a183a3-1528652621967)]
重新configure
如果后续还报/usr/bin/ld: cannot find -lpython3.6错误
继续修改
重新configure
然后继续
make –j
make check
make install
添加新的环境变量
source
5.hdf5
yum install gcc-c++ zlib-devel
cd /home/Elam/gdalsrc
wget http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.11.tar.gz
tar xvfz hdf5-1.8.11.tar.gz
cd hdf5-1.8.11
touch release_docs/INSTALL_VMS.txt
mkdir build
CFLAGS=-O0 \
./configure \
--prefix=/home/Elam/gdalsrc/hdf5-1.10.1/build \
--enable-shared \
--enable-build-all \
--with-zlib \
--with-pthread \
--enable-cxx \
# compile
make -j
# test build -- all tests should pass
make -j check
# install into build dir
make install
添加新的环境变量,注意这里还有include文件夹
gdal编译
我从网上下了一个2.3.0版本的,网址:http://download.osgeo.org/gdal/
yum install subversion gcc-c++ sqlite-devel libxml2-devel python-devel numpy swig expat-devel libcurl-devel xerces-c-devel unixODBC-devel postgresql postgresql-devel
cd /home/Elam/gdalsrc
tar -zxvf gdal-2.3.0.tar.gz
cd gdal-2.3.0
mkdir build
./configure \
--prefix=/home/Elam/gdalsrc/gdal-2.3.0/build \
--with-jpeg=external \
--without-libtool \
--with-python=/usr/local/anaconda3/bin/python \
--with-static-proj4=/home/Elam/gdalsrc/proj-4.8.0/build \
--with-libtiff=/home/Elam/gdalsrc/tiff-4.0.9/build \
--with-geotiff=/home/Elam/gdalsrc/libgeotiff-1.4.2/build \
--with-geos=/home/Elam/gdalsrc/geos-3.6.2/build/bin/geos-config \
--with-hdf5=/home/Elam/gdalsrc/hdf5-1.10.1/build \
make -j
# install into build dir
make install
添加新的环境变量:
进入build/bin里面
gdal-config –-version
看看是否编译成功
cd /home/Elam/gdalsrc/gdal-2.3.0/swig
make -j
cd python
python setup.py install --prefix=/home/Elam/gdalsrc/gdal-2.3.0/build
添加环境变量,或者直接用sys的路子添加路径
source
重新新建一个终端
先用
echo $PATH
echo $LD_LIBRARY_PATH
查看各个库的路径是否都在
如果不在,则重新source一下那个export_path.sh 如果不想每次都重新source,就直接添加到系统的环境变量当中去
进入python终端
看看能不能import
CentOS7.4,anaconda3,python3.6,tensorflow环境下gdal的编译和问题解决的更多相关文章
- 在tensorflow环境下安装matplotlib
在运行程序时,报错ImportError: No module named 'matplotlib',如图.经网上查询发现是没有安装matplotlib 因此记录一下在tensorflow环境下安装m ...
- iOS系统提供开发环境下命令行编译工具:xcodebuild
iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...
- Linux环境下使用VSCode编译makefile文件的注意事项
Linux环境下使用VSCode编译makefile文件的注意事项 首先安装C/C++的两个依赖 在debug,launch会自动的生成下方的launch.json launch.json { // ...
- mac 环境下Android 反编译源码
mac环境下Android 反编译 一.需要的工具 apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件. dex2jar:将反编译后的classes. ...
- VS环境下的makefile编译
直接找这个了,原来VS也可以makefile,在windows上解析makefile的软件叫NMAKE.exe 打算用命令Cmake -G“NMake Makefiles” 生成VS环境下Nmake的 ...
- Windows环境下使用VS2005编译OpenSSL
如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP S ...
- ubuntu环境下nginx的编译安装以及相关设置
一.基本的编译与安装 1.安装依赖项 sudo apt-get update sudo apt-get install build-essential zlib1g-dev libpcre3 libp ...
- 117、python MySQLdb在windows环境下的快速安装、问题解决方式
使用Python访问MySQL,需要一系列安装 Linux下MySQLdb安装见 Python MySQLdb在Linux下的快速安装 http://blog.csdn.NET/wklken/arti ...
- OS X环境下如何搭建编译Cocos2D-X v3.x的Android Studio工程
Cocos2D-X官网已经简单介绍了如何在OS X环境下搭建Cocos2D-X v2.x和v3.x的指南.具体链接为:http://www.cocos.com/doc/article/index?ty ...
随机推荐
- 解决ie7,ie8下a链接无效问题
.person a{ display: block; position: absolute; width: 109px; height: 33px; bottom: 19px; right: 40px ...
- loadrunner 场景设计-制定负载测试计划
by:授客 QQ:1033553122 场景设计-制定负载测试计划 步骤1.分析应用程序 你应该对硬件和软件组建,系统配置和典型的使用场景很熟悉.这些应用程序的分析保证你在使用loadrunner进行 ...
- myeclipce项目导入eclipse中报错
1 找到新建页面所在的工程名字,然后左键选中,右键弹出功能菜单,选择Build Path,进入配置路径. 2 在java build path 页面的下选择Libraries栏目(默认选择),点击右侧 ...
- Windows端部署zabbix-agent
一.windows客户端的配置关闭windows防火墙或者开通10050和10051端口(1).关闭防火墙(不推荐直接关闭,测试可以这样做,尤其是最近勒索病毒猛烈)开始—控制面板—windows防火墙 ...
- ccf--20131203--最大矩形
刚开始我是想依次计算i个相连矩形的面积,然后找出最大的面积,但是这种做法是时间复杂度是O(n*n),运行会超时. 这个是网上的一种做法,分别计算以第i个矩形作为高时,最大的面积.这就要以i为起始点,左 ...
- Linux 小知识翻译 - 「协议(protocol)」
对于理解服务器和网络来说,「协议」是不可缺少的概念. 「协议(protocol)」有「规则,规定」的意思. 实际上「协议」的函数很广,在通信领域,「协议」规定了「在通信时,什么样的情况下,以什么样的顺 ...
- February 5th, 2018 Week 6th Monday
The world is what it is; men who are nothing, who allow themselves to become nothing, have no place ...
- Ceph基础知识和基础架构认识
1 Ceph基础介绍 Ceph是一个可靠地.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备存储和文件系统服务.在虚拟化领域里,比较常用到的是Cep ...
- 多个Activity和Intent
Intent是Android应用程序组件之一,在Android系统当中表示一种意图,Intent中包含了一组信息: 最重要的内容是action(动作)和data(数据) Component name ...
- C#深度学习の----深拷贝与浅拷贝
本人在进行编程的时候遇到一个问题,要对一个绑定的依赖属性进行赋值,改变属性中的某一部分,绑定的目标上的所有值都发生了变化,着并不是我想要的,由此引出深浅拷贝的问题.(请加群交流:435226676) ...