GDAL という名前のライブラリへのバインドに非常に必要であることがわかりました。 https://github.com/craig-dillabaugh/gdal
使用例がないのが難点。バインディングを使用したことがない前に。
dub.json には次の文字列が含まれます:
"libs" : ["gdal"]
したがって、この名前の lib ファイルが必要なようです。
古いコミットで、吹き替えなしのコンパイルの例を見つけました:dmd test_gdal_d.d gdal.d -L-ldgal
元の gdal ディストリビューションには、そのような名前の lib は含まれていません。gdal111.dll
libしかありません。だから私はそれをに変換しましimplib
たgdal111.lib
。コマンド付きimplib /s gdal111.lib gdal111.dll
11MB lib から 1MB のサイズになります。
Dependency Walker を使用して、シンボルの表を見ました。GDALGetRasterXSize
次のコマンドですべてをビルドしようとしているようなシンボルがあります:
dmd D:\code\binding\gdal-master\gdal-master\source\App.d D:\code\binding\gdal-master\gdal-master\source\gdal.d -L -Igdal111.lib
しかし、次のエラーが発生しています:
D:\code\binding\gdal-master\gdal-master>dmd D:\code\binding\gdal-master\gdal-master\source\App.d D:\code\binding\gdal-master\gdal-master\source\gdal.d -L -Igdal111.lib
OPTLINK (R) for Win32 Release 8.00.17
Copyright (C) Digital Mars 1989-2013 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
App.obj(App)
Error 42: Symbol Undefined _GDALClose
App.obj(App)
Error 42: Symbol Undefined _GDALGetRasterCount
App.obj(App)
Error 42: Symbol Undefined _GDALGetRasterXSize
App.obj(App)
Error 42: Symbol Undefined _GDALGetRasterYSize
App.obj(App)
Error 42: Symbol Undefined _GDALOpen
App.obj(App)
Error 42: Symbol Undefined _GDALAllRegister
App.obj(App)
Error 42: Symbol Undefined _GDALIdentifyDriver
App.obj(App)
Error 42: Symbol Undefined _GDALCreate
--- errorlevel 8
ここにすべてのものを含むアーカイブを置きますhttp://dlang.ru/gdal-d-binding.zip
UPD: GDALを実行しました!!!
例でadd string:
pragma( lib, "libgdal.lib" );
の要点を説明すると、実行されます。すぐに、いくつかのコードを github にプッシュしたいと考えています。