Proj6.3在Window上的編譯(VS2015)


1. 環境

操作系統:win10

開發平台:vs2015

Proj4版本:PROJ-6.3

cmake版本:3.17.20200511-g8787079

2. 編譯和安裝

1.下載並解壓

在d盤中新建PROJ文件夾將下載好的PROJ-6.3.zip解壓到PROJ目錄並新建Proj4_build和Proj4_install兩個目錄.目錄結構如下:

d:
├─PROJ
    ├─Proj4_build
    └─Proj4_install
    └─PROJ-6.3
        └─源代碼文件

2.將上篇編譯《SQLite3在Windows下編譯(VS2015)》文中編譯的SQLite3版本中sqlite3_install拷貝到PROJ-6.3目錄中

d:
├─PROJ
    ├─Proj4_build
    └─Proj4_install
    └─PROJ-6.3
        └─源代碼文件
        └─sqlite3_install

為什么要拷貝到PROJ-6.3中呢?為了后面自動化構建方便。列如set SQLITE3_INCLUDE_DIR="%cd%\sqlite3_install\include" ,將PROJ-6.3作為根目錄。將PROJ整個目錄拷貝到其他機器上如果具有相同環境。可以無需任何配置馬上就可以構建Visual Studio工程

3.在PROJ-6.3目錄中新建一個名為build.bat文件。用於執行camke命令行構建Visual Studio 工程

@echo off
REM 定義SQLite的Include目錄變量
set SQLITE3_INCLUDE_DIR="%cd%\sqlite3_install\include" 
REM 定義SQLite的Lib路徑變量
set SQLITE3_LIBRARY="%cd%\sqlite3_install\lib\sqlite3.lib"
REM 定義SQLite的exe路徑變量 
set EXE_SQLITE3="%cd%\sqlite3_install\bin\sqlite3.exe"
REM 定義源代碼路徑路徑變量 
set src_dir="%cd%"
echo %src_dir%
REM 定義構建VisualStudio工程目錄變量 
set build_dir="%cd%/../Proj4_build"
REM 定義安裝目錄變量 
set install_dir="%cd%/../Proj4_install"
REM 創建VisualStudio工程目錄
mkdir %build_dir%
REM 創建安裝目錄
mkdir %install_dir%
REM 定義cmake安裝編譯的類型
set CMAKE_BUILD_TYPE=Release
REM 定義cmake安裝目錄
set CMAKE_INSTALL_PREFIX=%install_dir%
REM 回到構建VisualStudio工程目錄
cd %build_dir%
REM 調用camke命令行參數
cmake -G "Visual Studio 14 2015" -A x64   -S %src_dir%  -B %build_dir% -DSQLITE3_INCLUDE_DIR=%SQLITE3_INCLUDE_DIR% -DSQLITE3_LIBRARY=%SQLITE3_LIBRARY% -DEXE_SQLITE3=%EXE_SQLITE3%    -DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE%  -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX%                              
pause

最終文件目錄如下:

d:
├─PROJ
    ├─Proj4_build
    └─Proj4_install
    └─PROJ-6.3
        └─源代碼文件
        └─sqlite3_install
        └─build.bat

4.編譯項目

打開Proj4_build目中PROJ4.sln生成解決方案(這里編譯Realse x64版本)

5.安裝項目

在PROJ4.sln中選中INSTALL項目右鍵生成安裝文件會自動生成到Proj4_Install目錄中目錄如下

└─Proj4_install
    └─bin
        └─cs2cs.exe
        └─proj.exe
        └─projinfo.exe
        └─...
   └─include
        └─geodesic.h
        └─proj.h
        └─proj_api.h
        └─....
   └─lib
      └─proj.lib
   └─share
       └─...

3. cmake命令行參數說明(自己的理解)

-G "Visual Studio 14 2015" :指定生成器為vs 2015。
-A x64 指定生成的平台
-S 指定源代碼目錄
-B 指定構建目錄
-DCMAKE_INSTALL_PREFIX 指CMakeLists.txt中定義 ${CMAKE_INSTALL_PREFIX}
-DSQLITE3_INCLUDE_DIR 指PROJ-6.3/FindSqlite3.cmake中定義 ${SQLITE3_INCLUDE_DIR}
-DSQLITE3_LIBRARY 指PROJ-6.3/FindSqlite3.cmake中定義 ${SQLITE3_LIBRARY}
....

我的理解
-D將上一個camkelist中${變量}即-D變量就可以為camkelist文件中的變量設置值。
具體參考

Command-Line Tools


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM