天天看點

vcpkg編譯第三方庫leveldbvcpkg編譯leveldb

vcpkg編譯leveldb

1,安裝vcpkg

使用git指令直接pull vcpkg源碼

git clone https://github.com/microsoft/vcpkg

2,在vcpkg目錄執行bootstrap-vcpkg.bat腳本,編譯出vcpkg.exe檔案

安裝過程如果有報錯,需要使用vs安裝工具重新添加vs組建。

3,在vcpkg目錄,即可使用:

vcpkg.exe install leveldb:x64-windows

指令安裝,編譯leveldb庫檔案,該指令編譯出來的庫檔案為64位,如果是使用:

vcpkg.exe isntall leveldb

指令,預設安裝的是32位,我麼使用64位指令來編譯leveldb的庫檔案,執行完成之後,可以看到在下述目錄下,生成leveldb的庫檔案。

**F:\C++\vcpkg\packages\leveldb_x64-windows

4,執行內建指令,将vcpkg生成的庫檔案內建到vs項目中,指令如下:

vcpkg.exe integrate install

該指令的粒度為所有vs項目級别,粒度比較大,可以使用:

*vcpkg.exe integrate project

指令內建到更小粒度的工程上

5,在vs中設定包管理工具:

工具 >>> NuGet包管理工具 >>> 程式包源 >>> 建立 >>> 源路徑填入上述指令生成的路徑:

F:\C++\vcpkg\scripts\buildsystems

6,建立c++工程為release x64

7,在工程上,安裝NuGet程式包

工程 >>> 右鍵 >>>NuGet程式包 >>> 浏覽 >>> 安裝vcpkg

編寫leveldb代碼:

// leveldb.cpp: 定義控制台應用程式的入口點。
//

#include "stdafx.h"
#include <iostream>
#include "leveldb/db.h"

int main()
{
    //建立db
    leveldb::DB * db;
    leveldb::Options options;
    options.create_if_missing = true;
    leveldb::Status status = leveldb::DB::Open(options, "tmp/testdb", &db);
    assert(status.ok());
    if (status.ok()) {
        std::cout << status.ToString() << std::endl;
    }

    //寫操作
    const std::string  key = "name";
    std::string value = "fupeng";
    status = db->Put(leveldb::WriteOptions(), key, value);
    assert(status.ok());

    //讀操作
    value.clear();
    status = db->Get(leveldb::ReadOptions(), key, &value);
    assert(status.ok());
    std::cout << key << ":" << value << std::endl;
    //删除db
    delete db;
    return ;
}

           

vcpkg使用詳細介紹

上一篇: 交房備忘錄

繼續閱讀