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

posted @ 2020-08-25 22:58  焦涛  阅读(1583)  评论(0编辑  收藏  举报