gdal編譯geos的時候會用到geos_c_i.lib這個檔案,我用cmake編譯的時候僅僅產生geos_c.lib這個檔案,所以只能使用nmake的編譯方式來編譯geos庫,nmake編譯geos的時候出現了很多問題,最終解決了這些問題,成功編譯了goes的win32/x64和debug/release四個版本。現在記錄一下編譯時候的要點:
1、編譯的geos版本是3.4.0,windows的環境,vs2010下
2、在編譯win32的時候開啟的是vs2010的win32的命令提示工具,
輸入vcvars32.bat
切換到原始碼目錄 cd 原始碼目錄
輸入autogen.bat
輸入 nmake /f makefile.vc (nmake /f makefile.vc build_debug=yes)編譯完成
3、在編譯x64的時候,首先把win32編譯過的工程刪除,重新拷貝乙份新的**進來,因為win32編譯完之後會影響x64的編譯,導致x64編譯失敗,然後開啟的是vs2010的x64的命令提示工具,
輸入 vcvars64.bat
切換到原始碼目錄 cd 原始碼目錄
輸入 autogen.bat
輸入 nmake /f makefile.vc win64=yes (nmake /f makefile.vc win64=yes build_debug=yes)
這樣就使用nmake編譯了完整的geos庫。
編譯geos庫遇到的問題及解決辦法
可是我使用 vs 2005 編譯geos c dll工程,倒是能編譯成功,生成dll檔案和lib檔案,但是在外部呼叫,發現無法識別 envelope 類的錯誤。再開啟geos工程,看了一下,初步斷定是 envelope 類的錯誤,發現它的export.h是這樣的 ifndef geos export...
GEOS使用記錄
由於需要計算gis障礙物的緩衝區,所以研究了 一下geos庫的使用,將使用的一些細節內容記錄一下 1 vs2010ide無法編譯較高版本的geos庫,較高版本的庫使用了更加高階的c 語法,如果想使用高版本的geos庫可能僅僅使用geos c,這種用c介面的相對比較穩定,可以用較低版本的編譯器支援高版...
GEOS庫學習之四 幾何關係判斷
include geos.h geometryfactory factory 建立一條環線,與線的區別就是環線是閉合的。即第乙個點和最後一點重合 linearring creategeosring double x,double y,double offset 建立乙個多邊形,如果多邊形內部沒有孔洞...