在利用源代码进行软件编译的过程中,经常会出现以下错误:undefined reference to ‘crypt’libdl.so: error adding symbols: DSO missing from command lineopenssl/rsa.h: no such file or directory这些都是软件编译、链接过程中找到不相关头文件或者动态链接库导致的。本文主要讲解此类问            
                
         
            
            
            
            GCC 生成动态库概述GCC (GNU Compiler Collection) 是由 GNU 开发的编程语言编译器。GCC 包括 C, C++, Object-C, Fortran, Java, Ada 和 Go 语言前端,也包括这些语言的库(如 libstdc++, libgcj 等)。在 linux 环境中,GCC 用于编译 C 语言的工具为 gcc,用于编译 C++ 语言的工具为 g++。            
                
         
            
            
            
            动态库静态库理论与命令1 GCC编译理论首先需要知道GCC编译命令与过程 GCC编译可以分为四个步骤:一般常用的只有-C汇编和无参数链接 GCC编译常见参数: ‘’’ -I 指定头文件所在目录位置,注意-I和目录之间没有空格 -c 只做预处理,编译,汇编。得到二进制文件 -g 编译时添加调试文件,用于gdb调试 -Wall 显示所有警告信息 -D 向程序中“动态”注册宏定义 -l 指定动态库库名            
                
         
            
            
            
            动态库的两种路径linux指定动态库路径包括:1.指定编译时动态库路径;2.指定运行时动态库路径。后文提到的动态库路径都是指的是这两种路径。众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib(不管是编译还是运行都会默认搜索这两个路径)。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-08 15:36:16
                            
                                434阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            函数库一般分为静态库和动态库两种。静态库:是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为”.a”。动态库:与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为”.so”,gcc/g++在编译时默认使用动态库。无论静态库,还是动态库,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-29 21:34:03
                            
                                267阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            当GDB无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用set sysroot、set solib-absolute-prefix、set solib-search-path来指定库搜索路径。1. set sysroot 与 set solib-absolute-prefix 是同一条命令,实际上,set sysroot是set solib-absolute-pr            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-26 13:36:52
                            
                                87阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 在Windows上使用Hiredis动态库的指南
Hiredis是一个优秀的Redis C客户端,它为平台上与Redis进行通信提供了简洁的API。虽然它通常在Linux环境下使用,但本文将介绍如何在Windows系统上构建和使用Hiredis动态库,配合具体的代码示例和状态图,帮助开发者更好地理解整个过程。
## 一、环境设置
首先,为了在Windows上编译Hiredis,我们需要安            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-09-17 07:56:54
                            
                                324阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.什么是DLLDLL,即动态链接库,是包含若干个函数的库文件,可供其他程序运行时调用。2.DLL的优缺点优点:代码重用,可供多个程序同时调用缺点:易发生版本冲突当新版本的动态链接库不兼容旧版本时,其他使用该DLL的程序可能无法正常工作。针对这一问题,我们需要在程序中加上一个manifest文件,指明该程序所使用的DLL版本号。此时,程序将根据manifest加载指定版本的DLL,否则按默认版本加            
                
         
            
            
            
            告别关机:windows7 休眠、睡眠大解析      打开开始菜单,然后单击右下角的三角形箭头按钮,随后会看到很多选项(如下图所示)。这些选项大部分含义都很直白,用途一目了然,不过有些选项可能会让很 多人纳闷,例如“待机”、“休眠”,以及“睡眠”,这些功能有什么区别?和“关机”相比有分别有什么作用?这就是本文要介绍的内容。      电脑比作书房,看看在操作流程上有什么相同点。  假设书房里有一            
                
         
            
            
            
            1. 服务名称:Alerter显示名称:Alerter服务描述:通知选定的用户和计算机管理警报。如果服务停止,使用管理警报的程序将不会收到它们。如果此服务被禁用,任何直接依赖它的服务都将不能启动。可执行文件路径:C:\WINDOWS\system32\svchost.exe -k LocalService其他补充:操作建议:停止并禁用  2. 服务名称:ALG显示名称:Appl            
                
         
            
            
            
            
            windows 下载 grpc 一.安装protoc程序 protoc下载地址,打开链接,下载对应版本(我下载的是protoc-3.11.4-win64.zip),解压后将protoc.exe拷贝至放入到GOPATH/bin目录下。 二.安装grpc 由于google.golang.org/grpc ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-09 14:56:00
                            
                                278阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            PostgreSQL下载及Windows系统安装步骤一、下载PostgreSQL压缩包网址:https://www.enterprisedb.com/download-postgresql-binaries二、开始安装1、解压安装包把上图下好的zip包解压到你的存放目录:我是放在 D:\postgresql-14.4-1\ 文件夹下,2、然后在bin目录同级下新建一个data文件夹,用来存放数据3            
                
         
            
            
            
            最近的工作中用到了grpc。之前工作中使用的是基于thrift的微服务框架,对grpc不是很熟悉,只知道grpc是一个基于http2和protobuf的rpc框架。但是使用方法都是大同小异的,基于idl生成相应的文件,服务端的话就实现具体的service并对外提供服务,客户端的话需要引入client包发起rpc调用。这里有个问题,就是要调用下游的服务需要引入下游的client,如果下游服务的idl            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-26 15:12:54
                            
                                392阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            公司项目中的一个数据库搜索的表因为有新的产品的添加,这个表就需要添加新的记录,把产品的描述、类别以及其它的一些相关信息添加进来,这个搜索的表的数据又不能时常人工去更新,因为两三个就会有新的产品的推出。所以分两部分实现,一部分用Wcf服务来实现搜索的表的数据更新操作,另一部分用windows服务来定时调用Wcf服务.当我们手动更新时也可以通过程序后台调用wcf服务来完成.本篇只讲windows服务的            
                
         
            
            
            
            概述C语言编译后,在可执行文件中会有 函数名信息。如果想要动态调用一个C函数,首先需要 根据函数名找到这个函数地址 ,然后根据函数地址进行调用。动态链接器已经提供一个 API:dlsym(),可以通过函数名字拿到函数地址:void test() {
  printf("testFunc");
}
int main() {
  void (*funcPointer)() = dlsym(RTLD_            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-16 18:32:23
                            
                                64阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Java gRPC 动态参数
## 什么是 gRPC?
gRPC 是一个高性能、开源、通用的 RPC 框架,由 Google 开发,基于 HTTP/2 协议设计。gRPC 支持多种编程语言,包括 Java、C++、Python 等。它允许客户端和服务端之间通过定义的接口和方法进行通信,实现了跨语言、跨平台的远程过程调用。
## 使用 gRPC
在 Java 中使用 gRPC 需要先定义            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-03-05 06:21:22
                            
                                161阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ACE 服务配置:静态服务 和 动态服务 ACE允许运行时动态地配置服务和流,无论它们是静态地链接进用户程序中,还是其对象是从共享库中动态地加载,既可以配置服务(一个对象代表一个服务),也可以配置流(基于配置文件而非编译时期装配模块)。运行时配置的益处在于:●      多种类型的服务可以链接进程序中,也可以从共享库中动态地加载,通过配置            
                
         
            
            
            
            Makefile学习⑦:编译动态库和静态库编译链接动态库动态链接库名词解释:动态:运行时才去加载,动态加载链接:指库文件和二进制程序分离,用某种特殊手段维护两者之间的关系库 :库文件(window下为.dll文件,Linux下为.so文件)使用动态链接库的好处是程序可以和库文件分离,可以分别发版,然后库文件可以被多处共享动态链接库:不会把代码编译到二进制文件中,而是运行时才去加载,所以只需要维护一            
                
         
            
            
            
            深入浅出Visual C++动态链接库(DLL)编程 作者:宋宝华 博客:http://blog.donews.com/21cnbao/原文链接:http://soft.yesky.com/lesson/318/2166818.shtml动态链接库(DLL)是Windows系统的核心,也是COM技术的基础,因此突破动态链接库一直是技术人员的攻坚目标,本期专题将由浅入深            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2015-09-24 22:32:21
                            
                                2158阅读