Qt5.12實戰之Linux靜態庫與動態庫多文件生成a與so文件並調用
1.編輯並輸入內容到test.cpp與test2.cpp
test.cpp
#include <stdio.h>
int func()
{return 888;
}
test2.cpp
#include <stdio.h>
int func2()
{return 999;
}
將test.cpp與test2.cpp編譯成目標文件:
g++ -c test.cpp test2.cpp

一次性生成目標文件 與靜態庫
g++ -c test.cpp test2.cpp && ar rcs libtest.a test.o test2.o
將生成 的test.o 與test2.o合併成 libtest.a靜態庫

下面將test.cpp與test2.cpp合併生成到libtest.so動態庫
g++ test.cpp test2.cpp -fPIC -shared -o libtest.so
編輯並添加內容到app.cpp與app2.cpp中

編譯app.cpp並鏈接靜態庫libtest.a 生成 可執行程序
g++ -o app app.cpp -L./ -ltest
./app運行程序 輸出 888 999

編譯app2.cpp並鏈接靜態庫libtest2.so 生成 可執行程序
因爲編譯器會自動先查找.so文件 ,沒找到 ,再查找 .a文件
爲了區分 示例 ,所以生成 一個libtest2.so來測試
g++ test.cpp test2.cpp -fPIC -shared -o libtest2.so
編譯生成app2:
g++ -o app2 app2.cpp -L./ -ltest2
LD_LIBRARY_PATH=./ ./app2運行輸出 888 999

相关文章:
Qt5.12實戰之Linux靜態庫與動態庫多文件生成a與so文件並調用
1.編輯並輸入內容到test.cpp與test2.cpp test.cpp #include <stdio.h> int func() {return 888; } test2.cpp #include <stdio.h> int func2() {return 999; } 將test.cpp與test2.cpp編譯成目標文件: g -c test.cpp test2.cpp 一次性生成目標文件…...
Spring 之初始化前中后详解
Spring 框架是一个非常流行的 Java 框架,它提供了一种轻量级的、可扩展的方式来构建企业级应用程序。在 Spring 的生命周期中,有三个重要的阶段,即初始化前、初始化、初始化后。这篇文章将详细介绍这些阶段,并提供相应的源代码示例…...
企业数字化转型路上的陷阱有哪些
近年来,随着科技的快速发展,越来越多的企业开始了数字化转型的征程,希望通过数字化技术来提高企业的效率、降低成本、提升竞争力。然而,数字化转型也存在许多陷阱,如果不注意,可能会导致企业陷入困境。下面…...
Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C++)
Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C) Baumer工业相机Baumer工业相机使用图像算法增加图像的技术背景Baumer工业相机通过BGAPI SDK联合OpenCV使用图像增强算法1.引用合适的类文件2.BGAPI SDK在图像回调中引用…...
面试官:“你会组件化开发操作吗?它的优势在哪?”
随着 Android 版本的不断更新升级和用户对 APP 产品需求技术越来越高,相对的各大公司对 Android 开发者们设置的招聘门槛也越来越高。 至于如何去看一个开发者水平的高低,一般看面试官会怎么问,会问哪些部分的技术内容? 一般公司…...
腾讯新增长,AI扛大旗?
经历了疫情期间的低谷与波折,腾讯正在恢复它的活力。 3月22日,腾讯发布了2022年第四季度及全年财报。财报显示,2022全年营收为5546亿元人民币,归母净利润(Non-IFRS)为1156亿元人民币;2022年腾讯第四季度的营收为1450亿…...
项目6:实现数据字典的展示与缓存
项目6:实现数据字典的展示与缓存 1.数据字典如何展示? 2.前后端如何设计? 3.前端设计代码? 4.后端设计代码? 5.实现数据字典缓存到redis 项目6:实现数据字典的展示与缓存 1.数据字典如何展示? ①数据字典展示 树形结构②...
JsNode算法题acm模式输入
js分为jsNode和JsV8两种输入输出方式,一般的执行代码还是一样的 牛客是两种都支持 华为的题目大多只支持jsNode 本文主要介绍jsNode的输入 JsNode 首先他是逐行输入的,就和py差不多,一定是每行每行地输入,用字符串line&#x…...
Javaweb小练习---在JSP中使用Javabean访问数据库完成用户信息的简单添加
Javaweb小练习---在JSP中使用Javabean访问数据库完成用户信息的简单添加 目录 Javaweb小练习---在JSP中使用Javabean访问数据库完成用户信息的简单添加 0.创建数据库 1. 在resources目录下创建db.properties文件 2. /** * 获取链接与释放资源的工具类--JdbcUtil类 */ 3…...
(十七)排序算法-基数排序
1 基本介绍 1.1 概述 (1)基数排序(radix sort)属于“分配式排序”,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。 (2&#x…...
JMM之先行发生原则(happens-before)详解
1、概述 在JMM规范下,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happers-before(先行发生)原则。 例如 int x 10 ; int y x; 这两行代码中第二个操作 yx ,因为需要将x值赋值给y,所以第一行代码的…...
含分布式电源的配电网可靠性评估研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
安全加固服务是什么?哪些行业需要做?
安全加固服务是什么?安全加固服务是一种针对企业信息系统、网络设备、应用程序等进行安全加固和优化的服务。安全加固服务的主要目的是保障企业信息系统的安全性和稳定性,有效防范各类网络攻击和安全威胁。 安全加固服务是什么?通常包括以下…...
好程序员:Java书籍推荐,程序员必看的5本Java书籍,赶紧收藏!
今天好程序员给大家推荐5本Java书籍,各大高校都在使用(具体名单如下),所有学习Java的程序员都不应该错过! 第一本Java书籍《Java EE(SSM框架)企业应用实战》 本书全面介绍了JavaEE中MyBatis、Sp…...
maven将jar包添加到本地仓库
第一步:下载需要添加的jar包 可以在maven库中查找下载,也可以在对应官网下载 maven库网址:https://mvnrepository.com/ 找到对应版本的jar包下载 第二步:将下载的jar包放到指定位置(位置自己指定)…...
4.12--计算机网络之TCP篇之TCP 协议的缺陷+如何基于 UDP 协议实现可靠传输?--(复习+大总结)---沉下心来(加油呀)
TCP 协议四个方面的缺陷: 1.升级 TCP 的工作很困难; TCP 协议是在内核中实现的,应用程序只能使用不能修改,如果要想升级 TCP 协议,那么只能升级内核。 而升级内核这个工作是很麻烦的事情 2.TCP 建立连接的延迟&#x…...
数据库网络编程
数据库网络编程是一个重要的领域,它涉及到如何使用编程语言与数据库进行交互,以及如何设计和实现网络应用程序。在这篇文章中,我将探讨数据库网络编程的基础知识、常用技术和实践经验,以及一些应用案例和未来发展趋势。 一、基础…...
为什么现代企业都在使用ERP系统 它有哪些优势
随着科技的不断发展,企业管理方式也在不断地发生改变。在这个信息化的时代,企业要想取得成功,必须要善于利用先进的信息化技术工具。其中,ERP系统是企业管理中不可或缺的重要工具。本文将探讨现代企业为什么会使用ERP系统…...
别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?
老铁们是不是经常为写一些实体转换的原始代码感到头疼,尤其是实体字段特别多的时候。介绍一个开源项目 mapstruct ,可以轻松优雅的进行转换,简化你的代码。当然有的人喜欢写get set,或者用BeanUtils 进行复制,代码只是…...
LeetCode算法小抄-- 最近公共祖先 和 完全二叉树的节点个数
LeetCode算法小抄-- 最近公共祖先 和 完全二叉树的节点个数 最近公共祖先[236. 二叉树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/)[235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-b…...
什么制造业电子数据交换(EDI)软件?|应用现状以及发展趋势
一、什么是电子数据交换(EDI)软件电子数据交换(EDI),是制造企业之间按照行业标准,自动完成业务数据传输的数字化工具。EDI软件能够将订单、预测、发货、发票、物料主数据等信息,在企业ERP、MES、…...
生成式AI项目实战:从PyTorch到Hugging Face的完整开发指南
1. 项目概述:从GitHub仓库名到生成式AI项目的实战蓝图看到HeyNina101/generative_ai_project这个仓库名,很多开发者会心一笑。这太典型了——一个以个人ID命名的GitHub仓库,里面很可能是一个关于生成式人工智能(Generative AI&…...
DP/eDP协议深度解析--control symbol的插入时机与实现逻辑
1. 深入理解DP/eDP协议中的control symbol 第一次接触DP/eDP协议时,最让我困惑的就是那些神秘的control symbol。它们就像交通信号灯一样,指挥着视频数据的传输流程。简单来说,control symbol是嵌入在视频数据流中的特殊控制字符,…...
从码农到技术总监:10年程序员的职业进化史
一、初入职场:在代码与bug中蹒跚学步2016年的夏天,我背着双肩包,攥着毕业证,走进了一家中型软件公司的大门,成为了一名Java开发程序员,也就是别人口中的“码农”。那时候,我的生活被代码和bug填…...
Solopreneur 7×24 Agent 工作流:从 ARIS 论文里抠出 5 个可落地步骤
论文:ARIS: Autonomous Research via Adversarial Multi-Agent Collaboration arXiv:2605.03042(2026.5.4 上海交大) 适合人群:独立开发者 / Solopreneur / 想搭"睡眠工作流"的人 一、先讲一个我自己的故事 我做独立开…...
什么是“中国词元”?——解析中国AI自主生态的核心公式与关键平台
在当前的AI发展阶段,构建自主可控的产业生态已成为关键议题。本文将解析“中国词元”(Chinese Tokens)这一核心概念,并介绍其关键支撑平台——模力方舟Moark。文章面向AI开发者、企业技术决策者及生态关注者,旨在阐明如…...
飞书机器人+OpenClaw(小龙虾)本地AI:从创建应用到配置AppID/Secret全流程
OpenClaw 连接飞书完整图文教程 本文结合当前飞书开放平台页面、本目录里的截图素材,以及 OpenClaw Windows 现有飞书配置方式整理。 适用于“先在飞书开放平台创建企业自建应用,再把 App ID 和 App Secret 填回 OpenClaw”的接入流程。 先说结论&…...
如何用Project Graph快速构建思维导图?终极跨平台节点图绘制指南
如何用Project Graph快速构建思维导图?终极跨平台节点图绘制指南 【免费下载链接】project-graph A node-based visual tool for organizing thoughts and notes in a non-linear way. 项目地址: https://gitcode.com/gh_mirrors/pr/project-graph 还在为项目…...
终极指南:如何利用Play Integrity API构建专业级Android安全检测工具
终极指南:如何利用Play Integrity API构建专业级Android安全检测工具 【免费下载链接】play-integrity-checker-app Get info about your Device Integrity through the Play Intergrity API 项目地址: https://gitcode.com/gh_mirrors/pl/play-integrity-checker…...
告别卡顿!手把手教你配置UE5+Cesium子关卡,打造流畅的大型开放世界
告别卡顿!UE5Cesium子关卡实战:打造流畅的大型开放世界 当你在UE5中构建一个横跨多个城市的开放世界时,是否遇到过这样的场景:镜头拉到高空俯瞰时帧率骤降,或者角色在城市间快速移动时出现明显的加载卡顿?这…...
