2021-03-25

Mingw7.3 (Qt自带)+MingW6.3(使用MinGW Installer安装)+ OSG3.4 +CMake3.14.2+Qt5.14.1+OSGEarth2.8编译

一、需要的工具

      1、Qt5.14.1-mingw,如果找不到也可以用其他版本,官方目前提供5.12和5.9离线安装包

        http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/

      2、Git2.29.2带msys2 ,如果找不到,可以下载最新版本

       https://git-scm.com/download/win

      3、Cmake3.14.2

       https://cmake.org/files/v3.14/cmake-3.14.2-win32-x86.msi

      4、Curl7.73.0不是源码是可执行exe,用来下载osg 3rd part源码,版本无所谓

       https://curl.se/dlwiz/?type=bin&os=Win32&flav=-

      5、7z 19.00

      https://www.7-zip.org/a/7z1900.exe

      6、Mingw6.3,使用mingw installer安装。用于编译Osg3.4 3rdpart,qt自带mingw编译curl报错,所以下载mingw6.3编译Osg3.4 3rdpart。其他源码都是用qt自带mingw7.3编译

       https://xiazai.xiazaiba.com/Soft/M/mingw_0.602.22340.1_XiaZaiBa.zip 安装好 mingw installer 以后,联网下载gcc等工具,使用哪个版本的mingw好像都可以

二、需要的源码

      1、Osg3.4,3.4以后cmake不带osgqt模块

      https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.4.0

      2、Osg3.4 3rdpart(包含curl、freetype、giflib、glut、libjpeg、libpng、libtif、minizip库),使用download_dependencies.bat自动下载相应源码(下载之前需要安装git、curl、7z这些工具)

      https://codeload.github.com/bjornblissing/osg-3rdparty-cmake/zip/refs/heads/master

      3、Gdal2.1.2

      https://codeload.github.com/OSGeo/gdal/zip/refs/heads/release/2.1

      4、Geos3.6.1

      http://download.osgeo.org/geos/geos-3.6.1.tar.bz2

      5、Osgearth2.8,2.8版本以后cmake不带osgearthqt模块

      https://codeload.github.com/gwaldron/osgearth/zip/refs/heads/2.8

三、Gdal编译

  1. 把qt下自带的mingw路径放到系统路径path下,我的路径是D:\Qt\Qt5.14.1\Tools\mingw730_32\bin
  2. 在gdal源码路径下,右键打开git自带的bash
  3. ./configure --prefix=/c/gdal_2.1.2_mingw --without-libtool
  4. 修改GDALmake.opt文件,将GDAL_ROOT=/e/gdal2.1.2 改为 GDAL_ROOT=e:/gdal2.1.2这样的形式,对应自己的路径,否则报错找不到gdal的头文件等错误。
  5. 修改GUNMakefile文件,把生成$(GDAL_LIB)的命令修改为如下命令,大概在第46行,否则提示参数太长的错误

$(GDAL_LIB):   $(GDAL_OBJ) GDALmake.opt

rm -f libgdal.a

#$(AR) r $(GDAL_LIB) $(GDAL_OBJ)

# 先将其分作四部分,生成四个静态库

# 注意 ar 生成这四个静态库的参数是 sr

$(AR) sr basepart.a ./frmts/o/*.o ./gcore/*.o ./port/*.o ./alg/*.o

$(AR) sr appspart.a ./apps/commonutils.o ./apps/gdalinfo_lib.o ./apps/gdal_translate_lib.o ./apps/gdalwarp_lib.o ./apps/ogr2ogr_lib.o ./apps/gdaldem_lib.o ./apps/nearblack_lib.o ./apps/gdal_grid_lib.o ./apps/gdal_rasterize_lib.o ./apps/gdalbuildvrt_lib.o

$(AR) sr ogrpart1.a ./ogr/ogrsf_frmts/o/*.o ./ogr/ogrgeometryfactory.o ./ogr/ogrpoint.o ./ogr/ogrcurve.o ./ogr/ogrlinestring.o ./ogr/ogrlinearring.o ./ogr/ogrpolygon.o ./ogr/ogrutils.o ./ogr/ogrgeometry.o ./ogr/ogrgeometrycollection.o ./ogr/ogrmultipolygon.o ./ogr/ogrsurface.o ./ogr/ogrmultipoint.o ./ogr/ogrmultilinestring.o ./ogr/ogrcircularstring.o ./ogr/ogrcompoundcurve.o ./ogr/ogrcurvepolygon.o ./ogr/ogrcurvecollection.o ./ogr/ogrmulticurve.o ./ogr/ogrmultisurface.o ./ogr/ogr_api.o ./ogr/ogrfeature.o ./ogr/ogrfeaturedefn.o ./ogr/ogrfeaturequery.o ./ogr/ogrfeaturestyle.o ./ogr/ogrfielddefn.o ./ogr/ogrspatialreference.o ./ogr/ogr_srsnode.o ./ogr/ogr_srs_proj4.o ./ogr/ogr_fromepsg.o ./ogr/ogrct.o

$(AR) sr ogrpart2.a ./ogr/ogr_opt.o ./ogr/ogr_srs_esri.o ./ogr/ogr_srs_pci.o ./ogr/ogr_srs_usgs.o ./ogr/ogr_srs_dict.o ./ogr/ogr_srs_panorama.o ./ogr/ogr_srs_ozi.o ./ogr/ogr_srs_erm.o ./ogr/swq.o ./ogr/swq_expr_node.o ./ogr/swq_parser.o ./ogr/swq_select.o ./ogr/swq_op_registrar.o ./ogr/swq_op_general.o ./ogr/ogr_srs_validate.o ./ogr/ogr_srs_xml.o ./ogr/ograssemblepolygon.o ./ogr/ogr2gmlgeometry.o ./ogr/gml2ogrgeometry.o ./ogr/ogr_expat.o ./ogr/ogrpgeogeometry.o ./ogr/ogrgeomediageometry.o ./ogr/ogr_geocoding.o ./ogr/osr_cs_wkt.o ./ogr/osr_cs_wkt_parser.o ./ogr/ogrgeomfielddefn.o ./ogr/ograpispy.o

# 然后合成一个

$(AR) -crT ./libgdal.a basepart.a appspart.a ogrpart1.a ogrpart2.a

$(RANLIB) $(GDAL_LIB)

        修改生成$(GDAL_SLIB)的指令

$(GDAL_SLIB): $(GDAL_OBJ) $(GDAL_LIB)

$(LD_SHARED) ./frmts/o/*.o ./gcore/*.o ./port/*.o ./alg/*.o ./apps/*.o ./ogr/*.o libgdal.a -lodbc32 -lodbccp32 -lz -lpthread -lm  -lws2_32 -liconv -o ./libgdal.dll

 

      5.mingw32-make

      6.mingw32-make install

四、GEOS编译

  1. 进入geos源码目录,新建并进入目录build_mingw
  2. cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=../geos_mingw_install ..   #默认debug版
  3. 生成Makefile后还需要做点工作,就是将build_mingw\include\geos\目录下的platform.h和version.h文件拷贝到源码目录下的include\geos目录
  4. 在build_mingw路径下运行mingw32-make 和 mingw32-make install 即可

五、Osg 3rdparty编译

  1. 首先把qt自带mingw7.3编译器路径从系统变量path里面删除,把手动安装的mingw6.3 bin路径放到系统变量里面。
  2. 使用cmake gui进行配置,设置源码路径

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值