windows使用srpc库

接近半年前写过一篇如何编译windows的srpc库链接是:srpc windows 编译_从无~到有的博客-CSDN博客​​​​​​​编译环境:vs2017、cmake首先下载sougou的srpc安装包,其次下载protobuf,剩余的可以通过srpc里的连接下载;下图是需要准备的第三方依赖;解压srpc压缩包使用cmake打开注意路径点击configure开始配置,设置一下win32如下图报错没装openssl安装安装包即可安装完成过后就换问题了 如下图,protobuf需要3点几以上注意这里是要源码安装包下下来没用重新打开一个cmake编译protobuf注意图中protobuwindows使用srpc库https://blog.csdn.net/qq_16238157/article/details/115870492

后来在使用的时候出现了问题就给搁置了, 前几个月捡了起来。

        使用第三方公司的库经常出现编译不过提示各种无法解析的函数,这个倒是知道就是编译器找不到对应的函数实现,可是使用第三方库怎么会找不到第三方公司肯定是验证过得,就很无语,这次编译srpc再次遇到该问题,当时很忙于是我选择逃避这个问题。。。过了几个月后上一篇文章有人再问,正好我那个时候没那么忙了,于是我下定决心要搞定这个问题,功夫不负有心人这次我成功了。

        其实在使用第三方库的时候,也就是第三方库的例子的时候,我经常会漏掉一个文件CMakeLists.txt文件,因为不懂makefile,也不懂cmake所以这个文件我看的时候是很抗拒的,但是这个文件确是我搞定使用srpc库成功的关键。

        首先看看srpc文件路径下的tutorial文件夹中的CMakeLists.txt文件:

一堆应该是找依赖环境的cmake语法我选择忽略因为上一篇已经编译过了,环境应该是配好了,接下来应该关心如何生成exe:windows使用srpc库

 这段代码引起了我的注意其中add_executable感觉很像生成exe的命令,百度一下:

Cmake命令之add_executable介绍 - 简书命令格式add_executable ( [WIN32] [MACOSX_BUNDLE]      [EXCLUDE_FROM_ALL]      [source...https://www.jianshu.com/p/19765d4932a4确实和我猜想的一样那么可以看的出来这行代码就是解决问题的关键因素了很明显四个参数从上面这篇文章中可以看到有介绍:

第一个参数:可执行目标文件的名字

第二个参数:构建可执行目标文件所需要的源文件

第三个第四个参数应该是protobuf的依赖

第二个参数就是tutorial文件夹中的所有文件

windows使用srpc库

可以看出src是在遍历TUTORIAL_PB_LIST这个变量在看看下图

windows使用srpc库 

这个变量是手动写好的也就是tutorial文件夹下的所有教程文件

windows使用srpc库

所以这个foreach是在遍历生成exe!这个foreach里面还有一个关键字是非常有用的windows使用srpc库

百度一下:

cmake学习笔记之add_library、target_link_libraries和link_directories - 大老虎打老虎 - 博客园cmake是Linux(这里默认是Ubuntu系统)下常使用的编译C++的工具,而使用cmake就需要先在CmakeLists.txt文件中对编译规则进行。这里介绍常用的三种指令add_librarywindows使用srpc库https://www.cnblogs.com/wangshaowei/p/11324100.html target_link_libraries:该指令的作用为将目标文件与库文件进行链接

终于知道为啥编译一个小小的例子都编不过缺库!windows使用srpc库

可以看到这个变量有三种值,第一个是苹果,第二个是windows第三个应该是linxu 也就是说我们要把他后面一串库给链接上才能编译过,这些名字百度一下就能找到,我就不细聊了

 

上一篇:利用Cisco AP做嗅探器抓取空气报文


下一篇:比手写makefile好用一万倍CMake!