Win10編譯SqlCipher步驟

来源:http://www.cnblogs.com/xiaoxi666/archive/2017/11/03/7777949.html
-Advertisement-
Play Games

準備工作 Visual Studio 2015,其他版本未驗證,估計問題不大 ActiveState ActivePerl,用於編譯OpenSSL Mingw,在官網下載minimum installer安裝即可 nasm,彙編代碼運行環境,官網下載安裝即可 ActiveState ActiveTc ...


準備工作

  • Visual Studio 2015,其他版本未驗證,估計問題不大
  • ActiveState ActivePerl,用於編譯OpenSSL
  • Mingw,在官網下載minimum installer安裝即可
  • nasm,彙編代碼運行環境,官網下載安裝即可
  • ActiveState ActiveTcl,需要用到tclsh工具

    以上軟體請預先安裝,註意部分軟體安裝後需要手動添加環境變數

  • OpenSSL源碼,在官網下載即可
  • SqlCipher源碼,在官網下載即可

安裝OpenSSL

  1. 管理員許可權打開VS2015的命令行視窗,並利用cd /d XXX命令切換到OpenSSL目錄下

  2. 執行以下命令:

    • perl Configure VC-WIN32
    • nmake
    • nmake test 如果配置成功,該步驟會輸出All tests Successful
    • nmake install 正式安裝命令,32位機器預設安裝於C:\Program Files (x86)\OpenSSL文件夾
  3. 現在安裝目錄下生成了兩個庫文件:

    • 動態庫文件libcrypto-1_1.dll(位於./bin目錄下)
    • 靜態庫文件libcrypto.lib (位於./lib目錄下)

編譯SqlCipher

  1. 將上一步生成的兩個庫文件複製到SqlCipher主目錄下
  2. 管理員許可權運行C:\mingw\msys\1.0\msys.bat批處理文件,進入msys shell命令環境
  3. 利用命令cd /d XXX切換到SqlCipher目錄
  4. 修改sqlite3.c文件,在文件的最開始部分添加以下代碼:
    #define SQLITE_HAS_CODEC 1
    #define SQLITE_ENABLE_RTREE 1
    #define SQLITE_ENABLE_COLUMN_METADATA 1
    #define SQLITE_TEMP_STORE 2
    
  5. 繼續修改sqlite3.c文件,在文件的最後添加以下代碼:
    #include <sqlcipher/crypto.c>      /*** SQLCIPHER ADDITION ***/
    #include <sqlcipher/crypto_cc.c>      /*** SQLCIPHER ADDITION ***/
    #include <sqlcipher/crypto_impl.c> /*** SQLCIPHER ADDITION ***/
    #include <sqlcipher/crypto_openssl.c> /*** SQLCIPHER ADDITION ***/
    #include <sqlcipher/pager.c>       /*** SQLCIPHER ADDITION ***/	
    
  6. 運行以下命令進行配置(註意這是一行):
    ./configure --enable-tempstore=yes --with-crypto-lib=none --disable-tcl CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DNOCRYPT -lcrypto -DSQLCIPHER_CRYPTO_OPENSSL -I/c/progra~2/OpenSSL/include /d/MySoftware/sqlcipher/sqlcipher-master/libcrypto.dll -L/d/MySoftware/sqlcipher/sqlcipher-master/ -static-libgcc" LDFLAGS="libcrypto.lib"
    
  7. 執行命令:
    • make clean
    • make,生成可執行文件sqlcipher.exe
    • make dll,生成庫文件sqlite3.dll

到目前為止,Sqlcipher源碼就編譯完成了。接下來就可以參考第一篇參考文章盡情使用該軟體啦。

參考文章

How to compile SQLCipher for Windows Desktop.

用VS2015編譯sqlcipher

本文寫作時部分引用上述兩篇文章,特此感謝。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、函數聲明、函數表達式、匿名函數1.函數聲明:function fnName () {…};使用function關鍵字聲明一個函數,再指定一個函數名,叫函數聲明。2.函數表達式 var fnName = function () {…};使用function關鍵字聲明一個函數,但未給函數命名,最後將 ...
  • 最近在搞一個被很多人改了的框架,天天看代碼看的頭的暈了,不過感覺進步還挺大的,自己做了一個後臺可配置前臺查看兩個庫不同數據範圍的東西,還挺滿意,那天拿出來分享一下,今天先說一個這幾天做的功能,就是html頁面的查找功能。 這個功能主要是實現在查找框內輸入字元,之後按後面的上一個下一個按鈕,會自動把查 ...
  • 簡介 onunload,onbeforeunload都是在刷新或關閉時調用,可以在<script>腳本中通過 window.onunload來調用。區別在於onbeforeunload在onunload之前執行,它還可 以阻止onunload的執行。 onbeforeunload 是正要去伺服器讀 ...
  • 項目中需要調用webservice介面,android SDK中並沒有直接訪問webservice介面的方法,於是我引入了ksoap-android的jar包,來實現訪問webservice介面。剛開始一切還都比較順利,成功從webservice介面獲取到了返回的數據,直接運行在手機上一切也都正常。 ...
  • 註意Vietnamese_CI_AS排序規則下的特殊字元大小敏感問題 最近,在SQL Server中遇到了Vietnamese_CI_AS排序規則的特殊字元的大小寫敏感問題,是的,你沒有看錯,這句話並沒有語病(DBA老司機懂的)。遇到這個特殊情況的時候,我也大跌眼鏡,顛覆我的一些常識,OK,閑話少說... ...
  • http://kingxss.iteye.com/blog/1741076 ...
  • 這個系列大致想跟大家分享以下篇章(我會持續更新的↖(^ω^)↗): 1、mongo 3.4分片集群系列之一:淺談分片集群 2、mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3、mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全 4、mongo 3.4分片集群系列之 ...
  • 在處理實時數據的過程中需要緩存的參與,由於在更新實時數據時併發處理的特點,因此在更新實時數據時經常產生新老數據相互覆蓋的情況,針對這個情況調查了Redis事務和Lua腳本後,發現Redis事務並不能很好的滿足該場景的業務需要,必須藉助Lua腳本執行原子化的操作才能在理論上解決數據更新的準確性問題。 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 推薦一款基於.NET 8、WPF、Prism.DryIoc、MVVM設計模式、Blazor以及MySQL資料庫構建的企業級工作流系統的WPF客戶端框架-AIStudio.Wpf.AClient 6.0。 項目介紹 框架採用了 Prism 框架來實現 MVVM 模式,不僅簡化了 MVVM 的典型 ...
  • 先看一下效果吧: 我們直接通過改造一下原版的TreeView來實現上面這個效果 我們先創建一個普通的TreeView 代碼很簡單: <TreeView> <TreeViewItem Header="人事部"/> <TreeViewItem Header="技術部"> <TreeViewItem He ...
  • 1. 生成式 AI 簡介 https://imp.i384100.net/LXYmq3 2. Python 語言 https://imp.i384100.net/5gmXXo 3. 統計和 R https://youtu.be/ANMuuq502rE?si=hw9GT6JVzMhRvBbF 4. 數 ...
  • 本文為大家介紹下.NET解壓/壓縮zip文件。雖然解壓縮不是啥核心技術,但壓縮性能以及進度處理還是需要關註下,針對使用較多的zip開源組件驗證,給大家提供個技術選型參考 之前在《.NET WebSocket高併發通信阻塞問題 - 唐宋元明清2188 - 博客園 (cnblogs.com)》講過,團隊 ...
  • 之前寫過兩篇關於Roslyn源生成器生成源代碼的用例,今天使用Roslyn的代碼修複器CodeFixProvider實現一個cs文件頭部註釋的功能, 代碼修複器會同時涉及到CodeFixProvider和DiagnosticAnalyzer, 實現FileHeaderAnalyzer 首先我們知道修 ...
  • 在軟體行業,經常會聽到一句話“文不如表,表不如圖”說明瞭圖形在軟體應用中的重要性。同樣在WPF開發中,為了程式美觀或者業務需要,經常會用到各種個樣的圖形。今天以一些簡單的小例子,簡述WPF開發中幾何圖形(Geometry)相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 在 C# 中使用 RabbitMQ 通過簡訊發送重置後的密碼到用戶的手機號上,你可以按照以下步驟進行 1.安裝 RabbitMQ 客戶端庫 首先,確保你已經安裝了 RabbitMQ 客戶端庫。你可以通過 NuGet 包管理器來安裝: dotnet add package RabbitMQ.Clien ...
  • 1.下載 Protocol Buffers 編譯器(protoc) 前往 Protocol Buffers GitHub Releases 頁面。在 "Assets" 下找到適合您系統的壓縮文件,通常為 protoc-{version}-win32.zip 或 protoc-{version}-wi ...
  • 簡介 在現代微服務架構中,服務發現(Service Discovery)是一項關鍵功能。它允許微服務動態地找到彼此,而無需依賴硬編碼的地址。以前如果你搜 .NET Service Discovery,大概率會搜到一大堆 Eureka,Consul 等的文章。現在微軟為我們帶來了一個官方的包:Micr ...
  • ZY樹洞 前言 ZY樹洞是一個基於.NET Core開發的簡單的評論系統,主要用於大家分享自己心中的感悟、經驗、心得、想法等。 好了,不賣關子了,這個項目其實是上班無聊的時候寫的,為什麼要寫這個項目呢?因為我單純的想吐槽一下工作中的不滿而已。 項目介紹 項目很簡單,主要功能就是提供一個簡單的評論系統 ...