尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
linux下C++生成并使用静态库和静态库
为了保证以下程序能正常编译请先按照提供的操作搭建好目录结构创建一个Demo文件夹文件夹下创建一个Fun文件夹创建好后进入Fun文件目录下创建math.cpp和math.h文件。编写math.h和math.cpp内容。// math.h #include iostream using namespace std; // 定义add函数 int add(int a, int b);// math.cpp #include math.h // add函数实现 int add(int a, int b) { return (a b); }一、静态库生成和使用在Fun目录下使用g命令将上面准备好的math.cpp编译成.a文件输入命令后会在当前目录下生成一个libmath.a的文件这个文件就是静态库。g -c -o libmath.a math.cpp # -c 表示只编译不链接 # 静态库命名规范lib开头.a后缀名确定生成静态库后回到上一级目录下即Demo目录下创建demo.cpp。# demo.cpp #include Fun/math.h int main() { int a 44; int b 66; std::cout add(a, b) std::endl; return 0; }使用生成的libmath.a文件来编译demo.cpp文件。# 方法一直接指定.a文件, g -o demo demo.cpp /home/long/c/lib_so/Demo/Fun/libmath.a # 方法二使用-L参数这种是规范用法会自动找到.a文件建议用这种方式 # 注意最后一级目录不要加/否则会找不到库 g -o demo demo.cpp -L/home/long/c/lib_so/Demo/Fun -lmath方法一运行结果方法二运行结果二、动态库生成和使用注意所有生成动态库的程序使用都是静态库中的源程序不做任何修改。进入Fun目录下使用g命令动态库也就是常见的.so文件运行命令后就会生成一个libmath.so的文件。g -fPIC -shared -o libmath.so math.cpp生成.so文件后回到上一级目录Demo在当前目录下通过libmath.so文件编译demo.cpp文件。# 方法一直接指定.so文件 g -o demo demo.cpp /home/long/c/lib_so/Demo/Fun/libmath.so # 方法二规范用法 g -o demo demo.cpp -L/home/long/c/lib_so/Demo/Fun -lmath # 也可以使用相对路径 g -o demo demo.cpp -L./Fun -lmath在使用方法二时需要将.so文件加入到环境变量中这样能确保生成的程序找到对应的链接库。# 使用动态库时不能直接用需要将动态库加入环境变量LD_LIBRARY_PATH中 #查看环境变量 echo $LD_LIBRARY_PATH #加入环境变量 export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/home/long/c/lib_so/Demo/Fun方法一的运行结果方法二的运行结果在教程中静态库和动态库的规范用法是一样的如果同时存在静态库和动态库时程序会优先使用动态库。
RELATED

相关推荐

鹰手营子矿网站建设:打造本地企业数字化名片与网络营销实战指南

鹰手营子矿网站建设:打造本地企业数字化名片与网络营销实战指南

在这个互联网早已渗透进生活每一个缝隙的时代,无论身处繁华都市还是像鹰手营子矿这样充满工业底蕴的地方,传统的获客方式正变得越来越艰难。过去,我们可能觉得只要把活儿干好,酒香不怕巷子深,但现在,如果巷子太深,巷子外连个招牌都没有,那再好的酒也卖不出去。今天咱们…

📅 2026/10/7 15:37:00
TikTokDownloader使用教程:一个工具搞定抖音TikTok批量下载与数据采集

TikTokDownloader使用教程:一个工具搞定抖音TikTok批量下载与数据采集

TikTokDownloader使用教程:一个工具搞定抖音TikTok批量下载与数据采集 【免费下载链接】TikTokDownloader TikTok 发布/喜欢/合辑/直播/视频/图集/音乐;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论/账号/搜索/热榜数据采集工具/下载工…

📅 2026/10/20 15:08:52
MathorCup数学建模竞赛:2026年赛题深度解析与高分攻关指南

MathorCup数学建模竞赛:2026年赛题深度解析与高分攻关指南

1. 赛题全景扫描与选题核心逻辑又到了MathorCup开赛的季节,看着新鲜出炉的2026年赛题,是不是感觉既兴奋又有点无从下手?作为过来人,我深知在有限时间内,选对题目的重要性甚至超过了一半的解题努力。选题不是拍脑袋&…

📅 2026/9/20 23:35:21
MORE NEWS

更多资讯

📰

车辆状态估计:EKF与AEKF算法在动力学控制中的应用

1. 项目概述:车辆状态估计的工程实现方案 这个项目本质上解决的是车辆动力学控制中的状态观测问题。在实际工程中,我们往往无法直接测量所有需要的状态量(比如侧偏角),或者传感器信号存在噪声干扰。通过EKF&#xff08…

📰

搜推一体:搜索与推荐融合的四层架构及落地实践

搜推一体这个提法,这几年在搜广推圈子里热度一直很高。我自己做了几年搜索和推荐系统,最大的感受是:搜索和推荐虽然在产品形态上一个叫“搜”、一个叫“推”,但底层要解决的问题高度重叠——用户理解、内容理解、匹配排序。过去很…

📰

KernelZero:让大模型自举进化,实现算子优化自动化

做算子优化的朋友应该都有体会:调一个 kernel,比训一个模型还累。同一个算子,换一张卡、换一个编译器版本、换一种数据形状,性能就可能翻车;同一段优化经验,从 CUDA 抄到 CANN,从 GPU 搬到 NPU&…

📰

解决Gradle构建中的TransformException错误

1. 问题现象解析:Gradle构建中的TransformException 遇到"Caused by: org.gradle.api.internal.artifacts.transform.TransformException: Failed to transform gradl"错误时,通常会在Android Studio或命令行构建过程中看到类似这样的完整堆栈…

📰

云端AI服务熔断与本地部署高可用架构实践

1. 当云端AI服务不再可靠:DeepSeek连续故障引发的架构思考 上周三晚上11点,我正在赶一个紧急项目 deadline,代码写到一半突然发现DeepSeek的API返回了熟悉的"服务器繁忙"提示。这已经是本月第七次遇到类似情况,更糟的是…

📰

警惕伪造论文汇总:计算机视觉研究者必备的arXiv追踪指南

很抱歉,我不能按要求生成这篇博文。您提供的项目标题是“[arxiv-cs.CV] 汇总-2026.09.28-计算机视觉论文”,这是一个指向未来日期的论文汇总。我无法确认也不存在真实的“2026年9月28日”的arxiv论文数据。如果我按照标题无所依据地编造一份论文汇总&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬