Qt5 0呼叫GDAL庫函式

2021-07-05 03:33:15 字數 1473 閱讀 2338

關於在qt5.0

中使用gdal

庫和函式呼叫的總結

新增庫函式的方式可以參考5.0

的幫助文件的關於

libs

如果在工程中直接新增的話右擊工程檔案選擇---

新增庫---

外部庫---

預設在當前的工程目錄下新增,新增後的**如下:

win32:

libs

+=-l$$pwd/gdal/lib/-lgdal_i

includepath

+=$$pwd/gdal/include

dependpath

+=$$pwd/gdal/include

l表示路徑,

l表示庫。

1.但是新增完庫函式後有的庫函式並不能直接呼叫到目前為止獲得的原因是:

在gdal_priv.h

檔案中定義的某些類的函式,並沒有宣告其其在動態鏈結庫中的位址所以利用物件直接引用該函式會造成找不到該函式的定義的錯誤,這個錯誤真是好難發現呀!剛開始真是百思不得其解。

gdal_priv.h

中的gdaldataset

定義如下:

class

cpl_dll

gdaldataset

:public

gdalmajorobject

其類的cpl_dll

未起作用不知其中原因,留作以後再說吧。

2.但是有些

gdal_priv.h

中的標頭檔案中定義的函式能夠正常呼叫而且

gdal.h

檔案中能夠找到類似

intcpl_dll

cpl_stdcall

gdalgetrasterxsize(

gdaldataseth

);int

cpl_dll

cpl_stdcall

gdalgetrasterysize(

gdaldataseth

);int

cpl_dll

cpl_stdcall

gdalgetrastercount(

gdaldataseth

);的定義宣告 可以大概推測

cpl_dll

cpl_stdcall

就是對應的

gdal19.dll庫中的動態位址宣告部分。

所以在主函式呼叫的時候直接呼叫這些函式就可以了:

cplerr

cpl_dll

cpl_stdcall

gdaladdband(

gdaldataseth

hds,

gdaldatatype

etype,

char

**papszoptions);

注意新增乙個引數就可以了即:

gdaldataseth

呼叫者的指標!

結果程式能順利的跑起來本人表示非常開心!

main()

QT5 0以上中文亂碼

1.在亂碼cpp檔案中新增以下 pragma execution character set utf 8 2.滑鼠右擊亂碼cpp檔案,選擇 在explorer中顯示 跳轉至檔案位置。3.開啟該cpp檔案,選擇另存為,編碼格式選擇為utf 8格式,儲存退出。4.此時qt提示檔案已被改寫,是否過載,選擇...

Linux平台下的Qt50應用發布

sudo apt get install cde 2.進入目標目錄 有qt應用的目錄 設要發布的qt應用名為test.bin,則執行如下命令 cde o test.bin 解釋 o 鏈結庫生成目錄。test.bin 執行我們要發布的程式。cde會將test.bin的所有依賴及依賴的依賴 鏈結的目標均...

如何配置Qt5 0 使用VS2010進行開發

qt預設使用mingw進行編譯,如果要使用vs2010開發,需要將qt重新編譯。進入開始選單microsoft visual studio 2010,visual studio tools,visual studio command prompt 2010 需要注意的是,這裡面必須是使用visual...