由於引用了不同版本leveldb的標頭檔案導致的異常

2021-09-22 14:10:31 字數 706 閱讀 7012

leveldb::options options;

options.create_if_missing = true;

options.block_cache = leveldb::newlrucache(100 * 1048576);

options.filter_policy = new customfilterpolicy();

leveldb::db* db;

leveldb::status status = leveldb::db::open(options, "/tmp/testdb", &db);

assert(status.ok());

編譯完leveldb後在當前目錄生成了libleveldb.a和libleveldb.so,用

編譯,執行發現filter_policy沒生效,跟蹤到status db::open(const options& options, const std::string& dbname, db** dbptr)函式發現options.filter_policy為空,於是分別在呼叫leveldb::db::open之前和leveldb::db::open函式內部列印了options的大小,前者80,後者96,想到已經安裝過新版本的leveldb,猜測是找標頭檔案的時候找到/usr/local/include/leveldb/去了,所以將編譯命令改為

搞定。

引用不同版本dll

引用不同版本dll 乙個專案引用不同版本的同一dll,會引發以下報錯 未能載入檔案或程式集 version x.x.x.x,culture neutral,publickeytoken 或它的某乙個依賴項。系統找不到指定的檔案 這裡來解決專案中同一dll的多版本問題。解決方式 不同場景有不同的解決方...

C 引用不同版本dll

同一解決方案中,不同工程可能需要引用同一dll的不同版本 非必須,不推薦 以下是解決方案。基本可以參看這裡 引用不同版本dll 同乙個解決方案或有依賴關係的兩個專案引用同名但不同版本的dll 需要額外補充的是 這裡的相對路徑,是指程式輸出目錄 outdir 的相對路徑。name litedb pub...

maven不同環境引用不同版本的jar包依賴

pom檔案中定義 同義pay provider專案中打包也會根據pom檔案中的定義打包成jar包 根據版本上傳到指定版本的私服中 擴充套件知識 freemarker 2.3.8.jar.sha1是freemarker 2.3.8.jar的校驗檔案 freemarker 2.3.8.pom是管理描述檔...