当前位置: 首页 > news >正文

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

 

http://www.lryc.cn/news/60124.html

相关文章:

  • Spring 之初始化前中后详解
  • 企业数字化转型路上的陷阱有哪些
  • Baumer工业相机堡盟工业相机如何联合BGAPISDK和OpenCV实现图像的直方图算法增强(C++)
  • 面试官:“你会组件化开发操作吗?它的优势在哪?”
  • 腾讯新增长,AI扛大旗?
  • 项目6:实现数据字典的展示与缓存
  • JsNode算法题acm模式输入
  • Javaweb小练习---在JSP中使用Javabean访问数据库完成用户信息的简单添加
  • (十七)排序算法-基数排序
  • JMM之先行发生原则(happens-before)详解
  • 含分布式电源的配电网可靠性评估研究(Matlab代码实现)
  • 安全加固服务是什么?哪些行业需要做?
  • 好程序员:Java书籍推荐,程序员必看的5本Java书籍,赶紧收藏!
  • maven将jar包添加到本地仓库
  • 4.12--计算机网络之TCP篇之TCP 协议的缺陷+如何基于 UDP 协议实现可靠传输?--(复习+大总结)---沉下心来(加油呀)
  • 数据库网络编程
  • 为什么现代企业都在使用ERP系统 它有哪些优势
  • 别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?
  • LeetCode算法小抄-- 最近公共祖先 和 完全二叉树的节点个数
  • php、redis实现分布式锁的正确写法(原子操作 通用类 加讲解)
  • Transformer在时序预测的应⽤第一弹——Autoformer
  • 文章改写神器在线-AI续写文章生成器
  • 一秒钟给硬盘文件做个树状结构目录
  • 电脑重装系统后会怎样?
  • 100种思维模型之反熵增思维模型-47
  • 【网络安全】Xss漏洞
  • 17.网络爬虫—Scrapy入门与实战
  • 【面试题】JavaScript 中 try...catch 的使用技巧 ?
  • Java 命名格式规范
  • 【C++】STL中的容器适配器 stack queue 和 priority_queue 的模拟实现