• GDAL编译Windows平台下64位的方式


        最近写的项目需要在64位的服务器上,结果32位下编译的不能用,只好重新编译一套64位的。在编译GDAL时,出现了连接错误,如下:

    LINK : error LNK2001: unresolved external symbol > _OCTNewCoordinateTransformation at 8 
    LINK : error LNK2001: unresolved external symbol _vbSafeArrayToPtr at 16 
    LINK : error LNK2001: unresolved external symbol _GDALDitherRGB2PCT at 28
    LINK : error LNK2001: unresolved external symbol > > _GDALComputeMedianCutPCT at 32
    LINK : error LNK2001: unresolved external symbol _GDALReprojectImage at 48
    LINK : error LNK2001: unresolved external symbol _GDALSimpleImageWarp at 36
    LINK : error LNK2001: unresolved external symbol _OGRRegisterAll
    LINK : error LNK2001: unresolved external symbol _OGR_G_GetPointCount
    LINK : error LNK2001: unresolved external symbol _OPTGetProjectionMethods
    LINK : error LNK2001: unresolved external symbol _OSRValidate
    LINK : error LNK2001: unresolved external symbol _OGRFeatureStylePuller 
    

        按照GDAL论坛中的方式(http://www.osgeo.org/pipermail/gdal-dev/2006-May/008885.html)不是很清楚。

    以下是我编译的步骤,哥研究了很长时间滴:

    1:在GDAL目录下的nmake.opt文件中,找到SYM_PREFIX的定义,应该在438行左右

    将SYM_PREFIX=_ 改为SYM_PREFIX= 就是将最后的下划线去掉

    2:在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)

    就是将后面的@开始,后面的数字删除。

    现在开始编译吧,呵呵。祝你成功!

        PS:最新版的GDAL1.73版本直接可以在VS2008(VS2005也应该可以,没有测试)中选择x64编译,是直接可以编译过去的。前提是需要修改nmake.opt大概第一百行左右中的,Win64 = yes

  • 相关阅读:
    Docker界面化管理
    搭建MQTT服务器(Docker版)
    VS Code Markdown文件实时预览
    Nginx直接处理接口请求,返回相应内容(带html标签)
    Docker(九): 安装MySQL主从复制
    feign的一个注解居然隐藏这么多知识!
    使用Magisk指令修改 ro.debuggable(不刷机)
    【钓鱼可用】文件名反转字符串
    android高级UI之贝塞尔曲线<下>--贝塞尔曲线运用:QQ消息气泡
    英文阅读技巧操练---Article 1:The Product-Minded Software Engineer《一》
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314055.html
Copyright © 2020-2023  润新知