巴斯特 發表於 2023-9-28 10:22:39

Win11下基于VS2022编译SQLite3源码的实现步骤

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">前言</a></li><li><a href="#_label1">一、下载SQLite</a></li><li><a href="#_label2">二、配置SQLite</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_0">1.打开vs 2022</a></li><li><a href="#_lab2_2_1">2.编译SQLite</a></li><li><a href="#_lab2_2_2">3.规整文件</a></li></ul><li><a href="#_label3">总结</a></li><ul class="second_class_ul"></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>前言</h2>
<p>因为编译第三方库GDAL源码来使用 踩了很多坑,编译SQLite3是其中之一 故此记录一下完整的编译流程 供后续使用。</p>
<p><code>提示:以下是本篇文章正文内容,下面案例可供参考 </code></p>
<p class="maodian"><a name="_label1"></a></p><h2>一、下载SQLite</h2>
<p>SQLite <a href="https://www.sqlite.org/download.html" rel="external nofollow"target="_blank">下载地址</a></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836123.png" /></p>
<p>下载红框部分的3个文件 <code>提示:这里有个 sglite-autoconf-3420000.tar.gz 是免编译版,想省事就下载这个,但我自己用这个老是编译不过 所以我这里不推荐这个了 </code></p>
<p>下载完毕后 是这个三个文件:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836124.png" /></p>
<p>将三个压缩包解压放到一个新建的文件夹中,解压文件后显示如下结构:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836125.png" /></p>
<p>【sqlite3420000】文件夹是自己创建的 内容是上面三个压缩包的文件</p>
<p class="maodian"><a name="_label2"></a></p><h2>二、配置SQLite</h2>
<p class="maodian"><a name="_lab2_2_0"></a></p><h3>1.打开vs 2022</h3>
<p>&nbsp;1.选择创建新项目</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836126.png" /></p>
<p>选择空项目</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836127.png" /></p>
<p>这里路径可以直接放到下载的sqlite的目录下</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836128.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836129.png" /></p>
<p>填好项目名称 项目路径后 然后点击创建</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836130.png" /></p>
<p>2.项目添加文件</p>
<p>接着在 头文件 和 源文件两处 右键-&gt; 添加-&gt; 现有项 引用对应sqlite文件 如下所示:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836131.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836132.png" /></p>
<p>分别将 &ldquo;sqlite3.h&rdquo;、&ldquo;sqlite3ext.h&rdquo;、&ldquo;sqlite3.c&rdquo;、&quot;sqlite3.def&quot;共四个文件放入对应的文件夹后,接着</p>
<p>3.修改sqlite3.def文件</p>
<p>打开sqlite3.def 在文件的最后 添加如下内容</p>
<div class="jb51code"><pre class="brush:plain;">sqlite3_unlock_notify</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836133.png" /></p>
<p>然后保存,保存之后在项目点击右键-&gt;属性:</p>
<p>4.设置项目属性</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836134.png" /></p>
<p>打开属性设置后 先将顶部&quot;配置&quot;改为&quot;所有配置&quot;,&ldquo;平台&quot;改为&quot;所有平台&rdquo;。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836135.png" /></p>
<p>然后在左侧选择&quot;配置属性&quot;-&gt;&ldquo;C/C++&rdquo;-&gt;&ldquo;预处理器&rdquo;,右侧&quot;预处理器定义&quot;点击最右边的下拉后选&quot;编辑&quot;,在弹出的窗口中,把&quot;&lt;不同选项&gt;&quot;改为下面的内容的值,然后点确定。</p>
<div class="jb51code"><pre class="brush:plain;">_USRDLL
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_FTS5
SQLITE_ENABLE_UNLOCK_NOTIFY</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836136.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836137.png" /></p>
<p>操作完上面步骤后紧接着在左侧选择&quot;配置属性&quot;-&gt;&ldquo;链接器&rdquo;-&gt;&ldquo;输入&rdquo;,右侧&quot;模块定义文件&quot;点击最右边的下拉后选&quot;编辑&quot;,在弹出的窗口中,输入sqlite3.def后点击确定。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836138.png" /></p>
<p>最后一步在左侧选择&quot;配置属性&quot;-&gt;&ldquo;常规&rdquo;,右侧&quot;配置类型&quot;改为&quot;静态库(.lib)&quot;后点击应用-&gt;确定。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836139.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101836140.png" /></p>
<p class="maodian"><a name="_lab2_2_1"></a></p><h3>2.编译SQLite</h3>
<p>上述配置完毕后就可以开始编译SQLite了在&quot;解决方案配置&quot;为&quot;Release&quot;,&ldquo;解决方案平台&quot;选项,32位的选&quot;x86&rdquo;,64位选&quot;x64&quot;,</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101837141.png" /></p>
<p>然后右键sqlite项目-&gt;&ldquo;生成&rdquo;,在项目位置的Release文件夹下会生成sqlite.lib</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101837142.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101837143.png" /></p>
<p>显示上述内容即生成成功了,在项目文件的 x64-&gt;Release下能看到生成的lib</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101837144.png" /></p>
<p class="maodian"><a name="_lab2_2_2"></a></p><h3>3.规整文件</h3>
<p>生成后lib后 整理一下文件,在一步骤生成的【sqlite3420000】目录下新建【bin】【include】【lib】三个目录,然后分别把对应文件拖到目录下 如图所示:</p>
<p>【bin】目录存放生成的sqlite3.exe文件</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101837145.png" /></p>
<p>【include】目录存放生成的sqlite3.h,sqlite3ext.h文件</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101837146.png" /></p>
<p>【lib】目录存放刚刚生成的.lib文件</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202309/20230928101837147.png" /></p>
<p>到这里就结束啦!</p>
<p class="maodian"><a name="_label3"></a></p><h2>总结</h2>
頁: [1]
查看完整版本: Win11下基于VS2022编译SQLite3源码的实现步骤