nmake編譯
1. windows編譯GDAL+GEO+PROJ4(傻瓜教程)
一、編譯GEOS庫
編譯GEOS庫有nmake編譯與cmake-gui編譯兩種方法。
nmake編譯流程如下:
1. 解壓源碼到指定路徑。
2. 修改nmake.opt文件,根據編譯目標(32位或64位)、Debug或Release模式調整相關配置。
3. 打開VS的命令提示符,切換至指定路徑,執行編譯命令。
4. 編譯完成後,會在特定目錄生成geos相關的庫文件。
cmake-gui編譯流程如下:
1. 使用cmake-gui設置編譯路徑、輸出目錄。
2. 配置完成後,點擊generate按鈕。
3. 執行編譯,編譯完成的bin、include、lib文件將存儲於設置的輸出目錄。
二、編譯proj庫
使用cmake-gui編譯proj庫,設置輸出路徑,確保生成動態庫。
三、編譯GDAL庫
基於已編譯的GEOS庫,調整nmake.opt文件,配置GDAL_HOME路徑與相關依賴。
針對debug版本,需在nmake.opt中添加特定配置。
設置Proj庫相關參數,確保動態鏈接。
使用nmake命令執行編譯、生成操作。
四、注意事項
在將geos庫集成至GDAL時,確保geos庫路徑無空格,否則可能導致頭文件無法識別。
2. 如何用vs和makefile文件進行編譯
運行cmd.exe (or command.com in win9x)->進到vc/bin目錄->運行vc-vars32.bat->進到makefile 所在的目錄->nmake /f makefile
從sourceforge上下載下來的libjpeg源代碼中有一個makefile.vc的文件,可以通過nmake /f makefile.vc [nodebug=1]來編譯libjpeg,但是只能編譯靜態庫,如果需要編譯dll以便在emacs等程序中使用的話,需要修改makefile.vc和jmorecfg.h文件。在makefile.vc文件中添加編譯dll規則:
以下內容為程序代碼:
libjpeg.lib: $(LIBOBJECTS) $(RM) libjpeg.lib lib -out:libjpeg.lib $(LIBOBJECTS) #
添加以下這行 libjpeg.dll: $(LIBOBJECTS) $(RM) libjpeg.dll link -dll -out:libjpeg.dll $(LIBOBJECTS) 在jmorecfg.h中添加#define _WIN32_#define JPEG_DLL 然後nmake /f makefile.vc nodebug=1就可以編譯了。
將makefile復制為一個.mak文件,然後用VC打開即可!
.mak 就是一個makefile
可以指定怎樣編譯(命令行,必須先設置VC命令行環境)
vcvars32.bat可設置環境,在vc98/bin下 nmake /f XXXX.mak
如果有一個makefile就只要nmake就可以了。
3. 在VC里如何用Makefile文件編譯
在Visual C++中編譯使用Makefile文件,首先打開命令提示符(cmd.exe)或在Windows 9x中使用command.com,然後進入Visual C++的bin目錄,運行vc-vars32.bat設置環境變數。之後進入Makefile所在的目錄,並使用nmake /f makefile進行編譯。從sourceforge下載的libjpeg源代碼包含了一個makefile.vc文件,通過nmake /f makefile.vc [nodebug=1]可以編譯靜態庫,但若需編譯成dll,以便在如emacs等程序中使用,則需對makefile.vc和jmorecfg.h文件進行修改。
在makefile.vc文件中,需添加編譯dll的規則如下所示:
libjpeg.lib: $(LIBOBJECTS)
$(RM) libjpeg.lib
lib -out:libjpeg.lib $(LIBOBJECTS)
添加以下行:
libjpeg.dll: $(LIBOBJECTS)
$(RM) libjpeg.dll
link -dll -out:libjpeg.dll $(LIBOBJECTS)
在jmorecfg.h中添加:
#define _WIN32_
#define JPEG_DLL
修改完成後,使用nmake /f makefile.vc nodebug=1即可編譯。
將makefile復制為.mak文件,通過Visual C++打開即可,.mak文件實質上就是一個makefile文件,它能夠指定編譯的具體命令,以及必須先設置VC命令行環境。
vcvars32.bat用於設置環境變數,在Visual C++ 98的bin目錄下執行nmake /f XXXX.mak,如果有makefile文件,則直接使用nmake即可。
這種方法適用於需要自定義編譯規則或特定環境配置的情況,通過修改makefile文件,可以實現更靈活的編譯方式。
4. Qt 之 qwt 和 qwtpolar 的編譯配置
Qt 中 qwt 和 qwtpolar 的編譯配置步驟如下:
一、Qwt 的編譯配置
下載與解壓:
- 從 qwt.sourceforge.io 網站下載最新版本,例如 qwt6.1.4。
- 解壓至指定目錄,如 D:Qtqwt6.1.4。
- 修改 qwtconfig.pri 文件,注釋掉相關行,確保配置正確。
編譯:
- 打開 Qt 編譯器。
- 切換至 Qwt 目錄,運行 qmake qwt.pro 生成 Makefile。
- 執行 nmake 和 nmake install 完成編譯和安裝。
- 在 qwt 目錄下,進入 examples 目錄,執行 qmake examples.pro 和 nmake 以編譯示例。
二、Qwtpolar 的編譯配置
下載與解壓:
- 下載 Qwtpolar 的源代碼包,解壓至指定目錄。
編譯:
- 修改 qwtpolarconfig.pri 和 qwtpolarbuild.pri 文件,確保配置正確。
- 運行 qmake qwtpolar.pro 生成 Makefile。
- 執行 nmake 和 nmake install 完成編譯和安裝。
三、額外配置
工程配置:
- 在每個使用 Qwt 和 Qwtpolar 的 .pro 文件中,指定庫文件和頭文件的路徑。
環境變數:
- 增加 qwt.prf 所在目錄至環境變數中。
文件復制:
- 將 qwt.lib、qwtd.lib、qwt.dll、qwtd.dll 以及 qwt_designer_plugin.dll 文件復制至 Qt 安裝目錄下的對應子目錄中。
- 將所有頭文件復制至 Qt 安裝目錄下的 include/Qwt 文件夾中。
四、使用
- 在完成上述配置後,使用 Qwt 和 Qwtpolar 時,只需在 Qt 項目的 .pro 文件中添加對應的模塊名稱。
注意: 如在 Qt Creator 中未能顯示 QwtWidgets 和 QwtPolarPlot 的 UI 設計界面,但在單獨打開 Designer 時能正常顯示,可能是項目設置或 Qt Creator 配置問題。建議檢查 Qt Creator 的設置、項目構建配置或參考 Qt 官方文檔。