VS2017编译mb_gmt/mbaux

VS2017编译mb_gmt/mbaux

上一篇编译的4个库文件,与大名鼎鼎的GMT没有关系。

本文编译的mb_gmt和mbaux就用到GMT。本来想尝试一下编译GMT6.4.0,感觉比较头大,好在GMT提供VS2015预编译的库文件,VS2017调用也没有问题。

mbaux生成没有问题

mb_gmt生成报了一个错误:

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    LNK2005    GMT_mbgrdtiff 已经在 mbgrdtiff.obj 中定义    gmt    D:\OceanMultiBeamProc\OceanMultiBeamProc\gmt\mbgrdtifforg.obj    1    

mbgrdtiff.c

mbgrdtifforg.c

只能用一个,选择条件在makefile.am,如下:

#if GMT61PLUS
#  mbsystem_la_SOURCES += mbgrdtiff.c
#else
  mbsystem_la_SOURCES += mbgrdtifforg.c
#endif

由于GMT的版本为6.4.0,因此,去掉mbgrdtifforg.c

mb_gmt没有采用def生成dll和lib

使用的是加声明:

EXTERN_MSC int GMT_mbgrdtiff(void *API, int mode, void *args);

EXTERN_MSC

define EXTERN_MSC extern LIBSPEC

#    ifdef _WIN32
#        ifdef LIBRARY_EXPORTS
#            define LIBSPEC __declspec(dllexport)
#        else
#            define LIBSPEC __declspec(dllimport)
#        endif /* ifdef LIBRARY_EXPORTS */
#    else /* ifdef _WIN32 */
#        define LIBSPEC
#    endif /* ifdef _WIN32 */


D:\OceanMultiBeamProc\bin>dumpbin /exports mb_gmt.lib
Microsoft (R) COFF/PE Dumper Version 14.10.25017.0
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file mb_gmt.lib

File Type: LIBRARY

     Exports

       ordinal    name

                  GMT_mbcontour
                  GMT_mbgrdtiff
                  GMT_mbswath
                  _null_auth
                  rpc_createerr
                  svc_fdset

  Summary

          C0 .debug$S
          14 .idata$2
          14 .idata$3
           8 .idata$4
           8 .idata$5
           C .idata$6

就三个函数,可以自己定义def文件。

以上内容转载自:xiaok海洋测绘网
分享到:
原文链接:,转发请注明来源!
「VS2017编译mb_gmt/mbaux」评论列表

发表评论