【Linux下的动态链接和静态链接 及 调用libevent库函数的可执行文件无法正常运行情况剖析】
在运行使用了evconnlistener_new_bindbuffer event链接侦听器的可执行程序时会出现以下报错。主要原因就如同提示说的一样无法打开共享库或者说无法链接到动态库。所以借此描述一下Linux下的动态链接库和静态链接库以及如何生成这个libevent-2.0.so.5 动态链接库文件其实前面安装libevent步骤讲到过代码语言javascriptAI代码解释./libevent_Web: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory在Linux下静态链接Static Linking和动态链接Dynamic Linking是两种常见的链接方式用于将程序中的代码和数据与其他代码和数据组合起来以创建可执行文件或共享库。以下是关于这两种链接方式的详细说明静态链接 (.a)定义静态链接是指在编译时将程序所依赖的函数或数据直接复制到最终的可执行文件中。这意味着可执行文件包含了程序运行所需的所有代码和数据。特点独立性由于所有的代码和数据都被包含在了可执行文件中因此可执行文件不依赖于外部的库文件。体积大因为包含了所有依赖的代码和数据所以生成的可执行文件通常比较大。更新困难如果某个库文件被更新了所有依赖于这个库的可执行文件都需要重新编译和链接。示例在GCC中使用-static选项来指定静态链接。但是不是所有的库都提供静态版本所以你可能需要确保你的系统上安装了相应的静态库文件通常以.a为扩展名。代码语言javascriptAI代码解释gcc -static my_program.c -o my_program动态链接 (.so)定义动态链接是指在运行时程序所依赖的函数或数据从外部的共享库shared library中加载。这意味着可执行文件只包含了必要的引用信息而实际的代码和数据则存储在外部的共享库中。特点节省空间由于多个可执行文件可以共享同一个库文件所以总的磁盘空间占用会减少。更新方便如果某个库文件被更新了只需要替换掉旧的库文件所有依赖于这个库的可执行文件都可以立即使用新的库。依赖性强由于可执行文件依赖于外部的库文件所以在没有这些库文件的系统上可执行文件可能无法运行。示例在GCC中默认就是使用动态链接。你可以使用-shared选项来创建共享库使用-L和-l选项来指定链接时搜索的库路径和库名。创建共享库代码语言javascriptAI代码解释gcc -shared -o libmylib.so mylib.c链接共享库代码语言javascriptAI代码解释gcc my_program.c -L/path/to/libs -lmylib -o my_program在这个例子中-L/path/to/libs指定了链接器搜索库文件的路径-lmylib指定了要链接的库名不包括前缀lib和后缀.so。回到开头的问题运行可执行文件时当读到动态库部分时需要动态载入动态库最简单的方法就是把这个动态库libevent-2.0.so.5 放到你的可执行文件同目录下~当然针对动态库链接还有其它五种方法这里就不进行深层次的说明了。后续可能专门写一期

相关新闻

Linux内核中断唤醒系统逻辑分析

Linux内核中断唤醒系统逻辑分析

Linux内核的中断唤醒系统是一个涉及电源管理子系统、中断子系统和设备驱动模型的复杂机制。为了清晰地理解其全貌,下面将从中断唤醒源的分类、核心使能机制、唤醒执行路径以及设备驱动模型四个维度进行树形对比分析,并结合关键内核源码进行注解。1. 核心…

2026/5/17 10:29:46 阅读更多 →
Flutter 三方库 reactive_forms 的鸿蒙化适配指南 - 掌握模型驱动的响应式表单技术、助力鸿蒙应用构建高健壮性且极致解耦的工业级大型表单治理体系

Flutter 三方库 reactive_forms 的鸿蒙化适配指南 - 掌握模型驱动的响应式表单技术、助力鸿蒙应用构建高健壮性且极致解耦的工业级大型表单治理体系

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 reactive_forms 的鸿蒙化适配指南 - 掌握模型驱动的响应式表单技术、助力鸿蒙应用构建高健壮性且极致解耦的工业级大型表单治理体系 前言 在 OpenHarmony 鸿蒙应用应对“大…

2026/7/7 3:36:17 阅读更多 →
基于SpringBoot+Vue的智慧党建系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

基于SpringBoot+Vue的智慧党建系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 在新时代背景下,党建工作信息化、智能化已成为提升党组织管理效率和服务质量的重要方向。传统党建管理模式存在信息传递滞后、数据分散、管理效率低下等问题,难以满足现代党建工作的需求。智慧党建系统的设计与实现能够有效整合党建资源&#xff0c…

2026/7/3 1:04:00 阅读更多 →

最新新闻

如何为TouchDesigner配置MediaPipe虚拟摄像头:Spout与Syphon完整指南

如何为TouchDesigner配置MediaPipe虚拟摄像头:Spout与Syphon完整指南

如何为TouchDesigner配置MediaPipe虚拟摄像头:Spout与Syphon完整指南 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner MediaPipe Touc…

2026/7/8 0:43:03 阅读更多 →
如何快速配置Minecraft启动器PCL2:终极免费的模组管理解决方案

如何快速配置Minecraft启动器PCL2:终极免费的模组管理解决方案

如何快速配置Minecraft启动器PCL2:终极免费的模组管理解决方案 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL Plain Craft Launcher 2(PCL2&#…

2026/7/8 0:43:03 阅读更多 →
Obsidian本地REST API终极指南:5步构建你的智能笔记自动化系统

Obsidian本地REST API终极指南:5步构建你的智能笔记自动化系统

Obsidian本地REST API终极指南:5步构建你的智能笔记自动化系统 【免费下载链接】obsidian-local-rest-api A secure REST API and Model Context Protocol (MCP) server for your vault. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-local-rest-api …

2026/7/8 0:41:03 阅读更多 →
AI 电动滑板车智能功率 电池保护 高效驱动方案

AI 电动滑板车智能功率 电池保护 高效驱动方案

随着 AI 技术赋能电动滑板车(如智能扭矩控制、自适应续航、动力回收),电机控制器对功率 MOSFET 提出新要求:高效率、小体积、高可靠性与低成本。微碧半导体(VBsemi)基于先进 Trench 工艺,为您提…

2026/7/8 0:41:03 阅读更多 →
OpenCV 4.8.0 BGR 历史溯源:从硬件兼容到现代库的 3 种应对策略

OpenCV 4.8.0 BGR 历史溯源:从硬件兼容到现代库的 3 种应对策略

OpenCV 4.8.0 BGR 历史溯源:从硬件兼容到现代库的 3 种应对策略在计算机视觉领域,OpenCV 的 BGR 通道顺序一直是开发者绕不开的话题。当你第一次用 OpenCV 读取图像后尝试用 matplotlib 显示时,那诡异的蓝色调会让你瞬间意识到问题的存在——…

2026/7/8 0:39:03 阅读更多 →
7天从零到精通:SMAPI星露谷物语模组开发完全指南

7天从零到精通:SMAPI星露谷物语模组开发完全指南

7天从零到精通:SMAPI星露谷物语模组开发完全指南 【免费下载链接】SMAPI The modding API for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/smap/SMAPI 你是否曾想过为星露谷物语添加全新的游戏内容?是否羡慕其他玩家拥有独特的农…

2026/7/8 0:34:55 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻