MacOS下通过静态库方式引入gPRC功能

Mac Grpc 环境安装 + Demo 安装和配置环境变量 参考: https://blog.csdn.net/liangguangchuan/article/details/53582152 这里没有使用brew 进行安装,而是选择在官网下载安装包进行安装,我下载了最新的go1.10.2.darwin-amd64.pkg版本,直接点击安装,安装提示继续就行啦。 安装的路径为: /usr/local/go 之后进行环境变量配... 阅读详情

无论是通过gPRC的官网,还是github上对于gPRC的库文件引用,都是通过cocoapods的方式将它引入到自己的工程中,然后编译使用。但是会带来如下多个问题

(1)如果我们是多人协作开发,当把代码提到SVN上的时候,别人check下来你的代码,还需要重新编译一次gRPC的各种lib库,这个编译过程特别的耗时。

(2)在manage scheme里面可以看到两个scheme相同的名称,如下图,尝试改了这个名字,但是无法提交到SVN上面别人check到你的代码,还是有问题

基于如上问题,所以想到是通过静态库的方式引入gRPC的库文件。主要修改方式如下:

(1)在当前工程的目录下新建一个lib目录,然后通过之前的build方式生成的所有release下的文件都放到这个目录下,如下图所示。然后并把这些.a文件重新添加引用添加到我们的工程中。

(2)在.xcworkspace工程里删除Pods的引用,但是这个工程还是要在的,因为我们需要使用到他的header文件,这块也可以摘出来它所有的header文件,但是这块工作量比较大,所以选择保留该工程的形式。

(3)找到debug和Release两种环境下的.xcconfig文件,把其中的LIBRARY_SEARCH_PATHS给删除掉或者屏蔽掉,也行;这个的目的是为了搜索静态库的时候,不去Pods工程中去查找,避免重新编译

(4)修改工程Targets里面的build Settings里面的Search Paths中的Library Search Paths,添加如下的项目:$(PROJECT_DIR)/lib/Release/gRPC_Libs

(5)另外Build Phases 里面的Copy Pods Resources里面其实也不需要可以删除

自此修改完成!

一文搞懂静态库/动态库链接问题 目标:写C/C++程序的时候链接库问题经常困扰着我们,本文致力于在结合理论与实践完成一个快速入门一.原理1.一个出现频率很高的图,让大家有个框架 我们只需要关注生成的可重定位机器代码/库/目标程序 可重定位:装入的起始地址可以是任意的内存单元类似这种:如果其实地址是1111,上述的汇编翻译为机器代码(二进制)就是二.可重定位文件与ELF文件节区定义: 节区分类: 三 可执行文件的加载 四 实用的一些汇总命令:objdump -h xxxx.o 打印主要段的信息objdump -x x 阅读详情

相关推荐

grpc_msvc_x86_Qt库文件

使用vs2015编译的grpc静态库,其中包含了protobuf库,另外openssl可以使用这个链接http://download.csdn.net/detail/a912293097/9670793下载安装。 附Qt工程配置: QT += core QT -= gui CONFIG += c++11 TARGET = msvc_grpc_demo CONFIG += console CONFIG -= app_bundle DEFINES += _WIN32_WINNT=0x0600 QMAKE_CFLAGS += -MD QMAKE_LFLAGS += -NODEFAULTLIB:libcmt.lib INCLUDEPATH += C:\grpc_msvc_lib\include CONFIG(debug, debug|release) { LIBS += -LC:\grpc_msvc_lib\lib\debug\ C:\grpc_msvc_lib\lib\debug\grpc++.lib \ C:\grpc_msvc_lib\lib\debug\gpr.lib \ C:\grpc_msvc_lib\lib\debug\grpc.lib \ C:\grpc_msvc_lib\lib\debug\libprotobufd.lib \ C:\grpc_msvc_lib\lib\debug\libprotocd.lib } else { LIBS += -LC:\grpc_msvc_lib\lib\release\ C:\grpc_msvc_lib\lib\release\grpc++.lib \ C:\grpc_msvc_lib\lib\release\gpr.lib \ C:\grpc_msvc_lib\lib\release\grpc.lib \ C:\grpc_msvc_lib\lib\release\libprotobuf.lib \ C:\grpc_msvc_lib\lib\release\libprotoc.lib } LIBS += -LC:\grpc_msvc_lib\lib\ C:\grpc_msvc_lib\lib\zlib.lib LIBS += C:\OpenSSL-Win32\lib\libeay32.lib C:\OpenSSL-Win32\lib\ssleay32.lib LIBS += -lws2_32 -lzlib #LIBS += -luser32 -lgdi32 -ladvapi32 TEMPLATE = app SOURCES += main.cpp \ helloworld.grpc.pb.cc \ helloworld.pb.cc HEADERS += \ helloworld.grpc.pb.h \ helloworld.pb.h

Windows GRPC源码编译C++库——详细步骤

widnows grpc源码编译c++库

ManagerUser的博客 7107

grpc_v1.30.1_vs2019_x64_release.rar

grpc_v1.30.1_vs2019_x64_release 编译好的静态库,win10 64位可用

gRPC编译时,请注意使用make clean 清理后再重复编译

清理,而是新建了一个目录进行处理,原本想法是如果编译出现什么错误,可以使用原本正确的文件进行替换,但是原本的静态库依赖的相关库文件,已经被修改了。导致了一系列的错误。在 gRPC 编译时,一开始使用了makefile,由于缺少经验,找了半天的静态库链接,最后觉得太麻烦,搞个动态库让它自己解决库依赖好了。如果你出现了如 alist 库找不到这样的问题,或者在构建 gRPC 时在百分之十时显示构建错误。解决方式,我是使用了快照恢复,如果你没有快照的话,建议手动清理相关库文件。但是在再次编译的时候,并没有使用。

ALex_zry的博客 443

grpc-1.30.2 Linux 编译静动态库

grpc-1.30.2 release 版本动态库。默认编译是静态库,但考虑到 linux 上动态库使用较多,所以使用 -DBUILD_SHARED_LIBS=ON 参数编译为动态库。 在 centos 7 下使用 gcc 4.8.5 + cmake 3.16.9 编译,包含 bin, include, lib, lib64, share 五个目录,可以直接在 linux C++ 程序中引用。 因为 grpc 编译比较麻烦,且依赖项较多,故而分享一下编译后的版本,本人在 centos 的环境中亲测可用,且其中包含 protobuf-3.12.2,也可以单独使用。

windows grpc c++ 静态库

grpc静态库包含了32位 debug release版本;64位 debug release版本。 编译不容易,收取少量积分。 具体编译过程,请参考:https://blog.csdn.net/ManagerUser/article/details/126736076?spm=1001.2014.3001.5501

QT配置grpc,总结自己踩坑经验后的必看教程

qt配置grpc的关键步骤---导入静态库

zengguizhang的博客 3406

最新grpc库和头文件

最新版grpc库和头文件,采用VS2015编译,测试可用,省去编译的烦恼

grpc-win

1、代码: > git clone -b **v1.39.1** https://github.com/grpc/grpc > cd grpc > git submodule update --init 2、编译 > md .build > cd .build > cmake .. -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=./x64-windows-mt -DgRPC_MSVC_STATIC_RUN

wecode666 262

gRPC+官方文档中文版_1.0.pdf

《gRPC+官方文档中文版》权威,正版,值得拥有

gRPC Windows版本库

gRPC静态库,Windows系统中Release版本,其中的protobuf版本为3.5,也可以根据自己的需要更换protobuf版本,不影响gRPC库使用。

Linux下静态库和动态库的创建与使用

静态库: 假设当前有一个 C 语言项目,其目录结构如下所示: demo项目 ├─ headers │ └─ test.h └─ sources ├─ add.c ├─ sub.c ├─ div.c └─ main.c 可以看到,该项目中包含 1 个头文件( .h ),4 个源文件( .c ),它们各自包含的代码如下所示: 整个项目的逻辑很简单,其中 add.c、sub.c 和 .

qqGHJ的博客 996

grpc编译安装所需文件

grpc所需文件包括benchmark-master.zip googletest-master.zip thrift-master.zip c-ares-1.14.0.tar.gz grpc-master.zip zlib-master.zip gflags-master.zip protobuf-master.zip

新手小白Windows下gRPC编译操作详解~ 【v1.62.0 步骤详细】

很早之前在实习的时候就用到了一些gRPC相关的内容,当时也是编译鼓捣了好久总是这里有问题那里有问题,搜索一些博客的时候也总是会遇到一些博客中没有的问题,或者弄不明白每一步都是在干嘛,很多时候都是一些非常细小的地方出错误,最近又需要用到gRPC,又自己编译了一次,感觉整个过程清晰明了许多,做个记录~

coco_19的博客 2542

使用jsch和commons-pool2为sftp创建连接池

使用jsch和common-pool2为sftp创建连接池

文若书生的专栏 3282

BurpSuite实战:5分钟搞定Pikachu靶场表单爆破(附最新字典配置技巧)

本文通过Pikachu靶场实战,详细演示了如何使用BurpSuite的Intruder模块对Web登录表单进行暴力破解。从代理配置、请求捕获、集束炸弹模式设置,到载荷配置与结果分析,提供了完整的操作流程。文中还分享了2024年有效的字典获取与优化技巧,帮助安全测试人员快速定位弱口令漏洞。

weixin_29327977的博客 600

Qt使用GRPC之grpc配置

第一步:新建文件夹,命名为:grpcSetting,进入grpcSetting,创建include和staticlib两个文件夹。打开staticlib文件夹,在其下面创建debug和release 第二步:打开C:\Program Files (x86)\grpc文件夹,进入下面的include文件,复制其下面的所有文件,粘贴到grpcSetting文件夹下的include 第三步:打开...

百无禁忌想,脚踏实地干 6693

IC验证 AHB-RAM 项目(二)——接口与事务代码的编写

本文介绍了准备工作及接口、事务相关代码编写要点。在接口部分,重点说明了lvc_ahb_if.sv、rkv_ahbram_if.sv和rkv_ahbram_tb.sv三个关键文件的功能,其中rkv_ahbram_if.sv通过动态任务实现复位信号控制。事务部分则涉及lvc_ahb_types.sv中的枚举类型定义和lvc_ahb_transaction.sv中的随机化变量设置,用于构建AHB传输激励。整个验证环境采用模块化设计,通过接口实现TB与DUT的通信,为后续验证工作奠定基础。

weixin_45926435的博客 405

Linux下Qt加载GRPC依赖库

要注意的是/build/bin/grpc/lib和/build/bin/grpc/lib64是我自己的库目录,\ 是换行符,拷贝时请注意。首先说一下GRPC库,用源码编译生成的,分别生成了静态和动态的,由于GRPC的依赖库非常多,静态库在引用时需要考虑引用顺序(主要是pkbconfig那条路没走通,只能编译过,运行崩溃),所以考虑引用动态库。项目中客户端与服务端需要使用GRPC通信,服务端使用vsIDE很方便的就能将GRPC的依赖库引入,而Qt却只能LIBS+=来一个个的引入动态库,而难点就在于此。

qq_37468571的博客 576

微信小程序协同工作和发布

微信小程序协同工作和发布

qq_53114527的博客 1620

【一看就会】autoware universe项目结构解析——从一层一层直到control源码

下载安装autoware universe花了一天。下载好之后,按照网上说的跑了一下仿真是能跑的,证明下的代码没问题。然后就得看一下各模块实现的源码了。但是当我打开这些文件的时候。我勒个豆。这么多是个玩意儿。我连该启动哪个launch文件,哪个文件夹是干啥的都不知道。在我慢慢弄懂之后,我也记录这个庞大的项目的各个文件夹和里面的文件以及项目,以及自己使用时应该启动哪些launch文件。这篇文章目的就是通过找到control部分的源码,来帮助我们梳理这个庞大项目的各个文件的功能。

weixin_48386130的博客 2037

gRPC/C++的Makefile编写

gRPC 的库有点多,手工编写 Makefile 不简单,它有如下这么多的库和依赖库: $ ls cmake libabsl_log_severity.a libabsl_throw_delegate.a libgrpc.a libgrpc_plugin_support.a libssl.a ...

一见 1627

SAP RAP学习系列合集介绍

《SAP RAP学习系列合集:从入门到部署的完整指南》摘要: 本文介绍了作者创建的SAP RAP学习系列合集,涵盖RAP开发从基础概念到实战部署的全流程。系列目前包含17篇文章,系统讲解了RAP核心开发技术:从数据建模、UI构建到行为定义(包括并发控制、草稿功能、授权验证等),最后详细演示了应用部署到Fiori Launchpad的两种方案(OP版和ES版)。

DeveloperMrMeng的博客 1491

window 下 grpc c+ c#通信

【代码】window 下 grpc c++配置。

wamaqa 532

前端Three.js面试题及参考答案

渲染循环(Render Loop)是 Three.js 中一个非常重要的概念,它是一个不断重复执行的过程,用于更新和渲染 3D 场景。在每次循环中,渲染循环会更新场景中的对象状态,如位置、旋转、缩放等,然后使用渲染器将更新后的场景渲染成 2D 图像显示在屏幕上。通过不断地重复这个过程,就可以实现动画效果。渲染循环的核心作用是确保场景能够实时更新,给用户带来流畅的视觉体验。如果没有渲染循环,场景将是静态的,不会有任何变化。只有通过不断地更新和渲染,才能让场景中的对象动起来,实现各种动画效果。

大模型大数据攻城狮的专栏 2722

贝叶斯时空模型-INLA-4

该文章中,会简化数学计算的过程,主要是针对,在有数据的基础上,如何应用贝叶斯时空模型,找出影响因素,绘制时间变化的空间分布预测图。上述中关键一步与前几期介绍的不一样的地方是,我们加入了n.group参数,用来指定年份,先看一下Year有多少年的,然后封装在s.index里面。在前述的内容中,我们介绍了,如何处理空间的数据,利用海拔高度预测降雨量的例子。建立好数据及mesh以后,我们现在写INLA公式,如果不考虑残差项,那就是固定效应,现在我们增加残差项,及空间与时间效应。这里的Mesh设定值为10,20。

学习中 2948
上一篇: macOS下通过xcodebuild命令自动打包编译gPRC工程
下一篇: NSFont获取字体高度lineHeight
elsonpeng
博客等级 码龄10年 40粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值