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)下如实仿做一遍。
-
用gcc生成静态库和动态库.pdf
生成hello.o文件
生成可执行文件
删除静态库文件试试公用函数 hello 是否真的连接到目标文件 hello 中了
成功! -
- 静态库.a文件的生成与使用。
- 共享库.so 文件的生成与使用。
- 静态库.a文件的生成与使用。
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函数的目标文件与此动态库文件进行链接,生成最终的可执行程序,记录文件的大小,并与之前做对比。
-
gcc -c sub1.c sub2.c