APS手动编译,CLion测试

一、简介
APSI——Asymmetric PSI:
私用集交集(PSI)是指这样一种功能,即双方都持有一组私用项,可以在不向对方透露任何其他信息的情况下检查他们有哪些共同项。集合大小的上限被假定为公共信息,不受保护。

APSI(不对称PSI)库基于eprint.iacr.org/2021/1116中描述的协议为不对称集合大小提供PSI功能。例如,在许多情况下,一方可能持有数百万条记录的大型数据集,而另一方希望了解数据集中是出现了单个特定记录还是出现了少量记录。我们称之为未标记模式下的APSI。

然而,在许多情况下,查询器还希望为每个匹配的记录检索一些信息。这可以被视为具有隐私保护批量查询功能的键值存储。我们使用术语项和标签来指代这样一个键值存储中的键和值,并在标记模式下调用此APSI。

注意:除非实际需要标记模式,否则使用未标记模式会更有效率(在通信和计算方面)。

二、安装教程
若是简单测试可以尝试使用vcpkg安装:

./vcpkg install apsi

开发者模式安装,确定安装需要的依赖:

Dependencyvcpkg name
Microsoft SEALseal[no-throw-tran]
Microsoft Kukukuku
Log4cpluslog4cplus
cppzmqcppzmq (needed only for ZeroMQ networking support)
FlatBuffersflatbuffers
jsoncppjsoncpp
Google Testgtest (needed only for building tests)
TCLAPtclap (needed only for building CLI)

接下来我们要逐个安装依赖,里面会出现需要手动调时的东西,加油!
1.seal 4.1 :

git clone https://github.com/microsoft/SEAL.git
git checkout https://github.com/microsoft/SEAL.git
cd SEAL
git checkout origin/4.1.0
cmake -S . -B build  -DSEAL_THROW_ON_TRANSPARENT_CIPHERTEXT=OFF
cmake --build build
sudo cmake --install build可以指定安装路径--prefix /Users/admin/git/SEAL-4.1.0/seal_4.1

2.kuku

git clone https://github.com/microsoft/Kuku.git
cd Kuku
cmake -S . -B build
cmake --build build
sudo cmake --install build

3.Log4cplus

git clone --recurse-submodules https://github.com/log4cplus/log4cplus
cd log4cplus
cmake -S . -B build
cmake --build build
sudo cmake --install build

4.cppzmq

git clone https://github.com/zeromq/cppzmq.git
cd cppzmq
pip install Zeromq
cmake -S . -B build
cmake --build build
sudo cmake --install build

5.FlatBuffers

git clone https://github.com/google/flatbuffers.git
cd flatbuffers
cmake -S . -B build
cmake --build build
sudo cmake --install build

6.jsoncpp

git clone https://github.com/open-source-parsers/jsoncpp.git
cd jsoncpp
cmake -S . -B build
cmake --build build
sudo cmake --install build

7.Google Test

git clone https://github.com/google/googletest.git
cd googletest
cmake -S . -B build -DCMAKE_CXX_COMPILER="c++" -DCMAKE_CXX_FLAGS="-std=c++14 -stdlib=libc++"
cmake --build build
sudo cmake --install build

8.TCLAP

下载:https://sourceforge.net/projects/tclap/
解压
cd tclap
cmake -S . -B build -DCMAKE_CXX_COMPILER="c++" -DCMAKE_CXX_FLAGS="-std=c++14 -stdlib=libc++"
cmake --build build
sudo cmake --install build

如果你可以走到这一步距离大功告成仅差最后一步啦~

上述过程中会出现很多bug,欢迎将问题和解决方案留在评论区🙏

cmake适配
1.使用clion打开APSI:

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

2.打开CMakeList.txt
197行:option(APSI_BUILD_TESTS ${APSI_BUILD_TESTS_OPTION_STR} OFF) 改成
option(APSI_BUILD_TESTS ${APSI_BUILD_TESTS_OPTION_STR} ON)
若出现下面这个错误:

 Linking CXX executable bin/unit_tests
Undefined symbols for architecture arm64:"log4cplus::Logger::getInstance(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)", referenced from:apsi::Log::Configure() in libapsi-0.11.a(log.cpp.o)apsi::Log::SetLogLevel(apsi::Log::Level) in libapsi-0.11.a(log.cpp.o)apsi::Log::DoLog(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, apsi::Log::Level) in libapsi-0.11.a(log.cpp.o)"log4cplus::Logger::log(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, char const*, int, char const*) const", referenced from:apsi::Log::DoLog(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, apsi::Log::Level) in libapsi-0.11.a(log.cpp.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
#在其中增加依赖位置:
include_directories(/usr/local/include)
link_directories(/usr/local/lib)

这时打开test/unit/src/unit_tests_runner.cpp 仍会出现编译失败的问题,

gtest-port.h:281:2: error: C++ versions less than C++14 are not supported.
#error C++ versions less than C++14 are not supported.

确定自己使用的是C++14 以上版本,删除cmake-build-debug,重新编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/90513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QtCreator报大量未知标识符错误的解决方法

目录 前言背景介绍问题1问题1解决方法问题2问题2 解决方法总结 前言 本文记录了在使用QtCreator开发时遇到的一个错误&#xff0c;导致编译时出现大量的“未知标识符”&#xff0c;经过一番努力最终解决了这个问题&#xff0c;特在此记录。 背景介绍 Qt项目在麒麟V10 系统下…

【DTEmpower案例操作教程】向导式建模

DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件&#xff0c;致力于帮助工程师及工科专业学生&#xff0c;利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析&#xff0c;建立高质量的数据模型&#xff0c;实现快速设计评估、实时仿真预测、系统参数预警、设…

手机上记录的备忘录内容怎么分享到电脑上查看?

手机已经成为了我们生活中不可或缺的一部分&#xff0c;我们用它来处理琐碎事务&#xff0c;记录生活点滴&#xff0c;手机备忘录就是我们常用的工具之一。但随着工作的需要&#xff0c;我们往往会遇到一个问题&#xff1a;手机上记录的备忘录内容&#xff0c;如何方便地分享到…

微信小游戏从零到上线系列文章整理,建议收藏

引言 本系列是《从零开始开发贪吃蛇小游戏到上线系列》&#xff0c;欢迎大家关注分享收藏订阅。 大家中秋快乐&#xff0c;我是亿元程序员&#xff0c;一位有着8年游戏行业经验的主程。前面笔者给大家讲解了微信小游戏如何从零到上线的流程。可能很多小伙伴都还没有看到。 本…

某高校的毕设

最近通过某个平台接的单子&#xff0c;最后Kali做的测试没有公开可以私聊给教程。 下面是规划与配置 1.vlan方面&#xff1a;推荐一个vlan下的所有主机为一个子网网段 连接电脑和http客户端的接口配置为access接口 交换机与交换机或路由器连接的接口配置为trunk接口---也可以…

阿里云网络、数据中心和服务器技术创新优势说明

阿里云服务器技术创新、网络技术创新、数据中心技术创新和智能运维&#xff1a;云服务器方升架构、自研硬件、自研存储硬件AliFlash和异构计算加速平台&#xff0c;以及全自研网络系统技术创新和数据中心巴拿马电源、液冷技术等技术创新说明&#xff0c;阿里云百科aliyunbaike.…

conan入门(二十八):解决conan 1.60.0下 arch64-linux-gnu交叉编译openssl/3.1.2报错问题

上一篇博客《conan入门(二十七):因profile [env]字段废弃导致的boost/1.81.0 在aarch64-linux-gnu下交叉编译失败》解决了conan 1.60.0交叉编译boost/1.80.1的问题后&#xff0c;我继续交叉编译openssl/3.1.2时又报错了 conan install openssl/3.1.2 -pr:h aarch64-linux-gnu.…

Linux--进程间通信之命名管道

目录 前言概念命名管道的创建命名管道特性 命名管道通信建立连接资源处理 Client && Server通信总结 前言 上一篇文章介绍匿名管道的进程间通信只适合在具有血缘关系的进程间进行通信&#xff0c;但是如果我们想让两个不相关的进程实现通信&#xff0c;使用匿名管道显…

某企查ymg_ssr列表详情

js篇— 今天来看下某企查的列表详情–侵删 header发现这个参数 先断点一下 然后上一步 就到了这个地方 就开始扣一下这个js 三大段&#xff0c;先不解混淆了&#xff0c; 给a粘贴出来 &#xff0c;去掉自执行 给结果稍微改一下 缺windows&#xff0c;开始补环境 直接上…

Linux常见指令(1)

Linux常见指令[1] 一.前言1.操作系统简述 二.Linux常见指令1.登录Xshell2.Linux下的常见命令1.pwd2.ls1.ls -a2.ls -d3.ls -l 3.cd Linux中的文件系统1.文件的相关知识2.Linux下目录结构的认识1.什么叫做路径?2.Linux的整体目录结构3.为什么要有路径呢?4.绝对路径与相对路径 …

常识判断 --- 科技常识

目录 力与热 光和声 航空成就 垃圾分类 百科知识 血型 二十四节气歌 春雨惊春清谷天 夏满忙夏暑相连 秋处露秋寒霜降 冬雪雪冬小大寒 力与热 光和声 航空成就 垃圾分类 百科知识 血型

ThemeForest – Canvas 7.2.0 – 多用途 HTML5 模板

ThemeForest 上的 HTML 网站模板受到全球数百万客户的喜爱。与包含网站所有页面并允许您在 WP 仪表板中自定义字体和样式的 WordPress 主题不同&#xff0c;这些设计模板是用 HTML 构建的。您可以在 HTML 编辑器中编辑模板&#xff0c;但不能在 WordPress 上编辑模板&#xff0…

35 LRU缓存

LRU缓存 题解1 双map&#xff08;差2个testcases&#xff09;题解2 哈希表双向链表&#xff08;参考&#xff09;题解3 STL:listunordered_map 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正…

SpringMVC+统一表现层返回值+异常处理器

一、统一表现层返回值 根据我们不同的处理方法&#xff0c;返回的数据格式都会不同&#xff0c;例如添加只返回true|false&#xff0c;删除同理&#xff0c;而查询却返回数据。 Result类 为此我们封装一个result类来用于表现层的返回。 public class Result {//描述统一格式…

publicPath:打包时的配置

vue项目&#xff0c;执行打包命令后&#xff0c;会在项目的根目录中自动创建一个文件夹dist,dist中的文件就是打包后的文件&#xff0c;只需要放到服务器中即可。 【默认情况下&#xff0c;用的绝对路径&#xff0c;需要放到服务器的根目录打开。】 如果希望放到子目录也能运行…

背靠背 HVDC-MMC模块化多电平转换器输电系统-用于无源网络系统的电能质量调节MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; MATLAB2021版本 模型简介&#xff1a; MMC-HVDC模拟背靠背HVDC模块化多电平换流器&#xff08;MMC&#xff09;作为为整个电网供电的电能质量调节系统。因此&#xff0c;模块化多电平逆变器作为远程端转换器…

八、3d场景的区域光墙

在遇到区域展示的时候我们就能看到炫酷的区域选中效果&#xff0c;那么代码是怎么编辑的呢&#xff0c;今天咱们就好好说说&#xff0c;下面看实现效果。 思路&#xff1a; 首先&#xff0c;光墙肯定有多个&#xff0c;那么必须要创建一个新的js文件来作为他的原型对象。这个光…

SolidWorks 入门笔记03:生成工程图和一键标注

默认情况下&#xff0c;SOLIDWORKS系统在工程图和零件或装配体三维模型之间提供全相关的功能&#xff0c;全相关意味着无论什么时候修改零件或装配体的三维模型&#xff0c;所有相关的工程视图将自动更新&#xff0c;以反映零件或装配体的形状和尺寸变化&#xff1b;反之&#…

NOSQL Redis 数据持久化

Redis 数据持久化 快照方式&#xff08;RDB&#xff0c;Redis DataBase&#xff09; 全量的 在指定的时间间隔能对你的数据进行快照存储。文件追加方式&#xff08;AOF&#xff0c;Append only File&#xff09;增量 记录每次对服务器写的操作,当服务器重启的时候会重新执行这…

时间管理器:高效管理你的时间

随着社会的发展和生活节奏的加快&#xff0c;时间管理成为了人们日常生活中不可或缺的一部分。每个人都希望能够高效利用时间&#xff0c;提高工作和生活的效率。然而&#xff0c;在忙碌的生活中&#xff0c;很多人常常感到无所适从、无法合理规划自己的时间。这时&#xff0c;…