谨记:配完环境变量后最好重启一下电脑再测试,否则可能发生运行找不到dll报错的问题。
cmake
3.15.6:https://cmake.org/files/v3.15/cmake-3.15.6-win64-x64.msi
【until:2019】【启用】
OpenSceneGraph-3.6.4稳定版本osg下载
源码:
-
Github tag for 3.6.4:https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.6.4
-
git clone --branch OpenSceneGraph-3.6.4 https://github.com/openscenegraph/OpenSceneGraph.git
二进制库:
Windows Binaries provided by OBJEXX Engineering
第三方库:
Dependencies (openscenegraph.org)
数据资源:
可以通过如下命令来运行OSG例子(现在很多人已经不这么搞了,直接看哪个例子直接敲---FreeSouth注):
cd OpenSceneGraph[选项-构建和运行-cmake标签设置路径cmake3.1] 需前提是要安装cmake,并且在qt中配置cmake
runexamples.bat
-
通过qt打开工程,选择cmakelist.txt,qt会自动用cmake解析该文件
-
然后设置相应的变量值,点击下方的apply configration changes按钮保存
-
这样qt中就会出现一个openscenegraph项目
-
在项目上右键选择cmake对项目进行配置,然后再右键build就可以构建cmake工程了。
-
也可以自定构建其中的某些子项目
编译OSG:
cmake设置源码和build路径,用configure、generate:CMAKE_INSTALL_PREFIX:第三方库的路径
vs2017改为release、64,先ALL_BUILD后INSTALL:build路径生成bin、include、lib
配置环境变量:
OSG_FILE_PATH:设置data路径
Path:添加C:\Program Files (x86)\OpenSceneGraph\bin路径
cmd测试:bin>osgviewer data/cow.osg
- C:\Program Files (x86)\OpenSceneGraph\bin>osgviewer.exe H:\wangziyi\OPEN\OSG\data\cow.osg
VS2017测试:配置好include、lib、,运行源码:
编译osgEarth
第三方库:
curl-7.61.0
cmake:设置CMAKE_INSTALL_PREFIX=curl源码路径,configure、generate出curl.sln;
VS2017:先改为release64,后生成-批生成ALL_BUILD、INSTALL
GEOS-3.5.1
cmake:设置CMAKE_INSTALL_PREFIX=geos源码路径【本次默认:C:/Program Files (x86)/GEOS】
打开链接:trunk/cmake 中的 modules – GEOS (osgeo.org)
下载:trunk/cmake/modules 中的 GenerateSourceGroups.cmake – GEOS (osgeo.org)
将.cmake文件放到cmake/share/Moudles文件下,再configure、generate出curl.sln;
我的Moudles路径:D:\SoftWare\CMake3156\share\cmake-3.15\Modules
VS2017:先改为release64,后生成-批生成ALL_BUILD、INSTALL
GDAL-2.4.0
下载:http://download.osgeo.org/gdal/2.4.0/gdal240.zip
配置nmake.opt:
GDAL_HOME="C:\warmerda\bld" //存储编译出的头文件、静态库、动态库
#WIN64=YES //编译64位的GDAL删除#
ODBC_SUPPORTED = 1 //注释掉?
编译:(管理员)VS2017x64本机命令工具,进入源码目录:
nmake -f makefile.vc //编译GDAL //如要debug版本运行:nmake -f makefile.vc DEBUG=1
nmake /f makefile.vc install //将生成的头文件、静态库、动态库复制到GDAL_HOME
nmake /f makefile.vc devinstall //同上
错误信息如下:
正在创建库 gdal_i.lib 和对象 gdal_i.exp LINK : error LNK2001: 无法解析的外部符号 _OSRValidate LINK : error LNK2001: 无法解析的外部符号 _OPTGetProjectionMethods LINK : error LNK2001: 无法解析的外部符号 _OGR_G_GetPointCount LINK : error LNK2001: 无法解析的外部符号 _OGRRegisterAll LINK : error LNK2001: 无法解析的外部符号 _GDALSimpleImageWarp@36 LINK : error LNK2001: 无法解析的外部符号 _GDALReprojectImage@48 LINK : error LNK2001: 无法解析的外部符号 _GDALComputeMedianCutPCT@32 LINK : error LNK2001: 无法解析的外部符号 _GDALDitherRGB2PCT@28 LINK : error LNK2001: 无法解析的外部符号 _OCTNewCoordinateTransformation@8 gdal204.dll : fatal error LNK1120: 9 个无法解析的外部命令 NMAKE : fatal error U1077: ““C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE””: 返回代码“0x460” Stop.
解决方案一【不顶用】:
在工具命令提示符中输入如下命令(指定了编译器和操作系统后上述问题解决): nmake /f makefile.vc MSVC_VER=1916 WIN64=YES nmake /f makefile.vc MSVC_VER=1916 WIN64=YES install nmake /f makefile.vc MSVC_VER=1916 WIN64=YES devinstall ============================MSVC_VER====================== MSVC++ -> 6.0 MSVC_VER -> 1200 Visual Studio 6.0 -> 6.0 MSVC++ -> 8.0 MSVC_VER -> 1400 Visual Studio 2005 -> 8.0 MSVC++ -> 9.0 MSVC_VER -> 1500 Visual Studio 2008 -> 9.0 MSVC++ -> 10.0 MSVC_VER -> 1600 Visual Studio 2010 -> 10.0 MSVC++ -> 11.0 MSVC_VER -> 1700 Visual Studio 2012 -> 11.0 MSVC++ -> 12.0 MSVC_VER -> 1800 Visual Studio 2013 -> 12.0 MSVC++ -> 14.0 MSVC_VER -> 1900 Visual Studio 2015 -> 14.0 MSVC++ -> 14.1 MSVC_VER -> 1910 Visual Studio 2017 -> 15.0 MSVC++ -> 14.11 MSVC_VER -> 1911 Visual Studio 2017 -> 15.3 MSVC++ -> 14.12 MSVC_VER -> 1912 Visual Studio 2017 -> 15.5 MSVC++ -> 14.13 MSVC_VER -> 1913 Visual Studio 2017 -> 15.6 MSVC++ -> 14.14 MSVC_VER -> 1914 Visual Studio 2017 -> 15.7 MSVC++ -> 14.15 MSVC_VER -> 1915 Visual Studio 2017 -> 15.8 MSVC++ -> 14.16 MSVC_VER -> 1916 Visual Studio 2017 -> 15.9 MSVC++ -> 14.2 MSVC_VER -> 1920 Visual Studio 2019 -> 16.0 MSVC++ -> 14.21 MSVC_VER -> 1921 Visual Studio 2019 -> 16.1 MSVC++ -> 14.22 MSVC_VER -> 1922 Visual Studio 2019 -> 16.2
解决方案二【此问题解决,暴露新问题,请继续看^0^】:
方法二: 在GDAL目录下的nmake.opt文件中,找到SYM_PREFIX的定义,应该在438行左右 将SYM_PREFIX=_ 改为SYM_PREFIX= ,就是将最后的下划线去掉 在GDAL目录下的makefile.vc文件中,找到46行左右的代码,如下: BASE_INCLUDE = /INCLUDE:_GDALSimpleImageWarp@36 / /INCLUDE:_GDALReprojectImage@48 / /INCLUDE:_GDALComputeMedianCutPCT@32 / /INCLUDE:_GDALDitherRGB2PCT@28 / /INCLUDE:_OCTNewCoordinateTransformation@8 $(VB6_SAFEARRAYSYM) 就是将后面的@开始,后面的数字删除。 BASE_INCLUDE = /INCLUDE:$(SYM_PREFIX)GDALSimpleImageWarp / /INCLUDE:$(SYM_PREFIX)GDALReprojectImage / /INCLUDE:$(SYM_PREFIX)GDALComputeMedianCutPCT / /INCLUDE:$(SYM_PREFIX)GDALDitherRGB2PCT / /INCLUDE:$(SYM_PREFIX)OCTNewCoordinateTransformation $(VB6_SAFEARRAYSYM) 在工具命令提示符中输入如下命令(指定了编译器和操作系统后上述问题解决): nmake /f makefile.vc MSVC_VER=1916 WIN64=YES nmake /f makefile.vc MSVC_VER=1916 WIN64=YES install nmake /f makefile.vc MSVC_VER=1900 WIN64=YES devinstall
新问题:
正在创建库 gdal_i.lib 和对象 gdal_i.exp ogrsf_frmts.lib(ogrregisterall.obj) : error LNK2019: 无法解析的外部符号 RegisterOGRNGW,该符号在函数 OGRRegisterAllInternal 中被引用 gdal204.dll : fatal error LNK1120: 1 个无法解析的外部命令 NMAKE : fatal error U1077: “"D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\link.EXE"”: 返回代码“0x460” Stop.
解决方案【成功】
《参考:用于NextGIS网络|的新GDAL/OGR下一个地理信息系统》
《参考:无法使用 Visual Studio 2015 构建 GDAL 2.4.0 x64 ·问题 #1251 ·OSGeo/gdal ·GitHub》
工具:notepad++点击菜单中的“插件”》》“compare”》》“compare”的选项。
我替换了目录 gdal-2.4.0\ogr\ogrsf_frmts\generic 中的文件 makefile.vc【替换成gdal2.4.1的同名文件】
nmake /f makefile.vc MSVC_VER=1916 WIN64=YES编译成功:
继续执行
nmake /f makefile.vc MSVC_VER=1916 WIN64=YES nmake /f makefile.vc MSVC_VER=1916 WIN64=YES install nmake /f makefile.vc MSVC_VER=1900 WIN64=YES devinstall
zlip-1.2.13
下载:http://www.zlib.net/zlib-1.2.13.tar.gz
CMAKE_INSTALL_PREFIX=C:/Program Files (x86)/zlib
libzip
下载:https://libzip.org/download/libzip-1.9.2.tar.gz
标签:VER,VS2017,C++,OSGEarth2.10,Visual,Studio,win10,MSVC,cmake From: https://www.cnblogs.com/jsbs/p/16877508.html