Linux学习笔记-生成动态库(补充说明)
1.在Makefile中创建动态库。
2.在动态库中共享class类型。
Makefile文件如下:
EXE=libexample.so
SUBDIR=srcCXX_SOURCES=$(foreach dir,$(SUBDIR),$(wildcard $(dir)/*.cpp))
CXX_OBJECTS=$(patsubst %.cpp, %.o, $(CXX_SOURCES))
DEP_FILES=$(patsubst %.o,%d, $(CXX_OBJECTS))$(EXE): $(CXX_OBJECTS)g++ -shared $(CXX_OBJECTS) -o $(EXE)%.o: %.cppg++ -c -fPIC -MMD $< -o $@-include $(DEP_FILES)clean:rm -rf $(CXX_OBJECTS) $(DEP_FILES) $(EXE)test:echo $(CXX_OBJECTS)
文件目录结构如下:
src文件内部如下:
源码:
example.h
class Object{public:void test();int id;
};int example(int a,int b);
example.cpp
#include <stdio.h>
#include "example.h"int example(int a, int b)
{printf("example library: a=%d, b=%d \n", a, b);return 0;
}void Object::Test()
{printf("id=%d \n", id);
}
main.cpp
#include "src/example.h"int main(){example(10,20);Object obj;obj.id=100;obj.test();return 0;
}
运行截图如下:
Linux学习笔记-生成动态库(补充说明)相关推荐
- 嵌入式linux学习笔记-- 对于动态库的一些操作 dlopen
最近公司重构代码,看到了公司的一位经验丰富的工程师的一些C++ 操作 属实有被秀到,估计光看他写的代码都够我写很多总结了. 根据他写的代码以及公司未来的代码的一些规划 我也总结一些无关痛痒的知识吧. ...
- Linux学习笔记-gdb调试的补充说明
gdb调试的补充说明 程序运行截图如下: 源码如下: #include <stdio.h>void test(int i){if(i==0){return;}printf("Th ...
- Linux学习笔记-动态库的生成
库分为两种: (1)共享库 Shared Library (2)静态库 Static Library 通常共享库也称为动态库. 使用g++命令来生成动态库编译,生成.o文件 (编译选项 ‐fPIC ...
- linux添加自己的库,Linux学习笔记——例叙makefile 增加自定义共享库
Linux学习笔记--例说makefile 增加自定义共享库 0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己 ...
- linux学习笔记(五)编译内核模块生成ko驱动文件
系列文章目录 linux学习笔记(五)编译内核模块生成ko驱动文件 文章目录 系列文章目录 前言 一.加载内核简介 二.第一个hello world文件 1.文件树 2.hello.c 3.Makef ...
- Linux学习笔记之——Linux系统内部相关介绍
Linux学习笔记之--Linux系统内部相关介绍 摘要:主要记录一些比较有用的能够帮助理解和使用Linux的知识.比如一些相关概念.没兴趣的看看就好.知道有这么个东西.注意事项.和一些常用目录的作用 ...
- 20155303狄惟佳预备作业三Linux学习笔记
20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...
- Linux学习笔记-随即更新-慢速学习
Linux学习笔记 Linux系统简介 UNIX发展历史和发行版本 开源软件简介 支撑互联网的开源技术 Linux应用领域 Linux学习方法 Linux系统安装 给初学者的建议 学习linux的注意 ...
- 大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 (感谢礼品.红包免费送!) https://bbs.csdn.ne ...
最新文章
- 人工智能 机器学习系列 2:代价函数
- UnidentifiedImageError: cannot identify image file <_io.BufferedReader name=‘D:\\Download\
- [漫画]~RAGNAROK~(I部II部.全收入)
- 3d饼图 vue_在Vue中如何使用highCharts绘制3d饼图
- 关于function和Object的认识
- flink sql设置并行度_《从0到1学习Flink》—— Flink parallelism 和 Slot 介绍
- python开学吧真假,开学第一课,课课有总结
- 十多款优秀的Vue组件库介绍
- python朋友圈动态_如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)
- 如何强大且优雅的搞定Linux文件系统,值得一读!
- python期权价格计算器_使用Python构建内在价值计算器
- 第22篇 项目进度管理__计划评审技术__重点内容
- SPLUS软件授权管理必知
- 从零开始javaweb项目——毕业设计参考指南
- 如何制作ANE+Android以及ANE开发中可能遇到的坑
- vue组件,父传子、子传父、父调子、子调父简单理解总结
- 4 种经典方法IB 数学证明题分享给大家
- 行人重识别简介(Person ReID)
- Java Stream 流常用方法 lambda 表达式实现交集、并集、差集、去重复并集等
- Asp.net Ajax Control Toolkit设计编程备忘录(色眼窥观版)——第4回(忍者专辑)