当前位置: 首页> 科技> 数码 > 互联网法律服务平台_装修设计公司哪家好_专业搜索引擎seo服务_新乡百度关键词优化外包

互联网法律服务平台_装修设计公司哪家好_专业搜索引擎seo服务_新乡百度关键词优化外包

时间:2025/7/18 6:01:20来源:https://blog.csdn.net/alun550/article/details/124361593 浏览次数:0次
互联网法律服务平台_装修设计公司哪家好_专业搜索引擎seo服务_新乡百度关键词优化外包

cpp(c++)编译GDAL、PROJ、SQLite3

  • Sqlite3
  • libtiff
  • curl
  • proj
  • GDAL

 
 
 
 
 
 
 
 

Sqlite3


1、下载 Sqlite3 源码、工具、二进制预编译 exe

Sqlite3 官网:https://www.sqlite.org/download.html
 
下载

  • sqlite-amalgamation-3430200.zip
  • sqlite-dll-win64-x64-3430200.zip
  • sqlite-tools-win32-x86-3430200.zip

在这里插入图片描述

 

2、创建空的 C++ 项目(此处我用 Visual Studio 2019)

项目名:Sqlite3

在这里插入图片描述

 

3、复制 Sqlite 源码到空项目下

  • sqlite-amalgamation-3430200
    • shell.c
    • sqlite3.c
    • sqlite3.h
    • sqlite3ext.h
  • sqlite-dll-win64-x64-3430200
    • sqlite3.def

在这里插入图片描述

 

4、将代码添加到项目中

在这里插入图片描述

 

5、编译静态库

  • 配置 — 常规
    • 输出目录
    • 中间目录
    • 配置类型 —— 静态库
  • C++ — 代码生成
    • 运行库 —— 多线程(/MT)
输出目录:$(SolutionDir)$(Platform)\$(Configuration)\
中间目录:$(Platform)\$(Configuration)\

在这里插入图片描述
在这里插入图片描述

 
5.1 编译静态库(切换到 Release、x64)

在这里插入图片描述

 
5.2 进入编译的结果目录,创建 “lib” 目录,并将编译出的静态库放入

在这里插入图片描述

 

6、编译动态库

  • 配置 — 常规
    • 配置类型 — 动态库
  • C/C++
    • 预处理器
      • 预处理器定义 — 替换为如下内容
    • 代码生成 — 多线程DLL(/MD)
  • 链接器
    • 输入
      • 模块定义文件 — sqlite3.def 的全路径
_USRDLL
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_FTS5
SQLITE_ENABLE_UNLOCK_NOTIFY
SQLITE_ENABLE_DESERIALIZE
SQLITE_ENABLE_PREUPDATE_HOOK
SQLITE_ENABLE_SESSION
SQLITE_ENABLE_FTS3

6.1 设置库类型

在这里插入图片描述

6.2 设置预处理器

在这里插入图片描述

6.3 代码生成设置

在这里插入图片描述

6.4 模块定义文件

在这里插入图片描述

6.5 修改 sqlite3.def,添加如下内容

sqlite3_unlock_notify

在这里插入图片描述

6.6 Release、x64 下编译动态库

在这里插入图片描述

 

7、在 x64/Release 目录下创建 bin 目录,并将下载的 sqlite3 的二进制 sqlite3.exe 放入

在这里插入图片描述

 
 
 
 
 
 
 
 

libtiff


1、下载 libtiff 源码

下载地址:https://download.osgeo.org/libtiff/
 
此处下载最新版 4.6.0rc2

在这里插入图片描述

 

2、CMake 构建项目,修改 prefix 目录

在这里插入图片描述

 

3、Release、x64 编译项目

在这里插入图片描述
在这里插入图片描述

 
 
 
 
 
 
 
 

curl


1、下载 curl 源码

下载源码:https://curl.se/download/

 

2、CMake 构建项目,修改 prefix 目录

在这里插入图片描述

 

3、Release、x64 编译项目

在这里插入图片描述

 
 
 
 
 
 
 
 

proj


1、下载 curl 源码

下载源码:https://proj.org/en/9.3/download.html
 
构建项目时,会从 github 下载 googletest 项目,对网络会有所要求

在这里插入图片描述

 

2、CMake 构建项目

构建过程中会报错提示 “Sqlite” 未找到

2.1 设置安装的目录

在这里插入图片描述

 
2.2 设置 Sqlite 相关参数,原始如下

在这里插入图片描述

从上到下分别设置 sqlite3.exe、sqlite3 include 目录、sqlite3 编译的静态库

在这里插入图片描述

 
2.3 设置 LibTIFF 相关参数,原始如下

这里只设置 TIFF_INCLUDE_DIRTIFF_LIBRARY_RELEASE,不设置 TIFF_LIBRARY_DEBUG

TIFF 配置完成
在这里插入图片描述

 
2.4 设置 curl

同样,只设置 CURL_INCLUDE_DIRCURL_LIBRARY_RELEASE
 
CURL_INCLUDE_DIR 设置到 include 这一步就可以,不要进入到其内部的 curl 目录

在这里插入图片描述

 

3、Release、x64 编译项目

 
 
 
 
 
 
 
 

GDAL


1、下载 gdal 源码

下载地址:https://gdal.org/download.html

在这里插入图片描述

 

2、CMake 生成工程

设置安装目录

在这里插入图片描述

 
设置 proj 的 include、release library

在这里插入图片描述

 
设置 sqlite3(此处我没设置,需要安装了 rtree 等空间扩展的 sqlite)

 
设置 tiff

在这里插入图片描述

 
设置 curl

在这里插入图片描述

 

3、以 release、x64 编译 gdal

此处不需要把 gdal 改成静态库,直接使用默认设置生成即可

 

4、以 release、x64 编译 gdal

在这里插入图片描述

 

5、创建新工程,测试 gdal 是否可用

在这里插入图片描述

在这里插入图片描述

 

更改代码中的 tiff 数据,并运行程序

#include <gdal.h>
#include <string>
#include <gdal_priv.h>
#include <iostream>void readReaster(std::string inRaster)
{//注册所有的驱动 GDALAllRegister();//GDAL数据集 GDALDataset* dataset;dataset = (GDALDataset*)GDALOpen(inRaster.c_str(), GA_ReadOnly);if (dataset == NULL){std::cout << "Failed in open files!!!" << std::endl;throw;}// 获取数据行列数 int nRows = dataset->GetRasterYSize();int nCols = dataset->GetRasterXSize();std::cout << "Rows: " << nRows << ", Cols: " << nCols << std::endl;//获取投影信息std::string srs = dataset->GetProjectionRef();std::cout << "SRS: " << srs << std::endl;//获取波段 GDALRasterBand* band;band = dataset->GetRasterBand(1);
}int main()
{std::string inRaster = "E:\\Datas\\GDAL_Test\\raster\\DEM_SH_WGS84_Resample1.tif";readReaster(inRaster);return 0;
}

在这里插入图片描述

关键字:互联网法律服务平台_装修设计公司哪家好_专业搜索引擎seo服务_新乡百度关键词优化外包

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: