GCC背后的故事&OpenCV相识何必曾相逢

本文详细介绍了GCC背后的编译过程,包括静态库与动态库的生成,以及在Ubuntu环境下实现的步骤。同时,通过OpenCV学习了图像处理的基本操作,如打开图片、播放和录制视频,加深了对编译器和图像编程的理解。
摘要由CSDN通过智能技术生成

GCC背后的故事&OpenCV相识何必曾相逢

嵌入式系统基础第四周作业


目录

  • GCC背后的故事&OpenCV相识何必曾相逢
  • 一、 学习并掌握可执行程序的编译、组装过程。
    • 1.阅读、理解和学习材料“用gcc生成静态库和动态库.pdf”和“静态库.a与.so库文件的生成与使用.pdf”,请在Linux系统(Ubuntu)下如实仿做一遍。
    • 2.在第一次作业的程序代码基础进行改编,除了x2x函数之外,再扩展写一个x2y函数(功能自定),main函数代码将调用x2x和x2y ;将这3个函数分别写成单独的3个 .c文件,并用gcc分别编译为3个.o 目标文件;将x2x、x2y目标文件用 ar工具生成1个 .a 静态库文件, 然后用 gcc将 main函数的目标文件与此静态库文件进行链接,生成最终的可执行程序,记录文件的大小。
    • 3.将x2x、x2y目标文件用 ar工具生成1个 .so 动态库文件, 然后用 gcc将 main函数的目标文件与此动态库文件进行链接,生成最终的可执行程序,记录文件的大小,并与之前做对比。
  • 二、Gcc不是一个人在战斗。
    • 简介
    • Linux GCC常用命令.pdf
      • 1.简单编译
      • 2.多个程序文件编译
      • 3.检错
      • 4.库文件连接
    • GCC编译器背后的故事.pdf
      • 1. Binutils
      • 2.分析ELF文件
  • 三、“学了opencv,妈妈再不担忧你不会图像编程啦!”。
    • 1. 编写一个打开图片进行特效显示的代码 test1.cpp(见opencv编程参考资料 )
    • 2. 练习使用opencv库编写打开摄像头压缩视频的程序。
    • 3.录制视频
  • 四、总结
  • 五、参考文献

一、 学习并掌握可执行程序的编译、组装过程。

1.阅读、理解和学习材料“用gcc生成静态库和动态库.pdf”和“静态库.a与.so库文件的生成与使用.pdf”,请在Linux系统(Ubuntu)下如实仿做一遍。

  1. 用gcc生成静态库和动态库.pdf
    生成hello.o文件
    请添加图片描述
    请添加图片描述

    生成可执行文件
    请添加图片描述
    删除静态库文件试试公用函数 hello 是否真的连接到目标文件 hello 中了请添加图片描述
    成功!请添加图片描述

  2. 静态库.a与.so库文件的生成与使用.pdf

    1. 静态库.a文件的生成与使用。
      请添加图片描述
    2. 共享库.so 文件的生成与使用。
      请添加图片描述

2.在第一次作业的程序代码基础进行改编,除了x2x函数之外,再扩展写一个x2y函数(功能自定),main函数代码将调用x2x和x2y ;将这3个函数分别写成单独的3个 .c文件,并用gcc分别编译为3个.o 目标文件;将x2x、x2y目标文件用 ar工具生成1个 .a 静态库文件, 然后用 gcc将 main函数的目标文件与此静态库文件进行链接,生成最终的可执行程序,记录文件的大小。

sub.h

		#ifndef SUB_H
		#define SUB_H
		float x2x(int a,int b);
		float x2y(int a,int b);
		#endif

sub1.c

	float x2x(int a,int b)
	{
		float c=0;
		c=a+b;
		return c;
	}

sub2.c

	float x2y(int a,int b)
	{
		float c=0;
		c=a/b;
		return c;
	}
	

main.c

	#include<stdio.h>
	#include"sub.h"
	void main()
	{
		int a,b;
		printf("Please input the value of a:");
		scanf("%d",&a);
		printf("Please input the value of b:");
		scanf("%d",&b);
		printf("a+b=%.2f\n",x2x(a,b));
		printf("a/b=%.2f\n",x2y(a,b));
	}


3.将x2x、x2y目标文件用 ar工具生成1个 .so 动态库文件, 然后用 gcc将 main函数的目标文件与此动态库文件进行链接,生成最终的可执行程序,记录文件的大小,并与之前做对比。

  1. gcc -c sub1.c sub2.c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值