当前位置:   article > 正文

opencv_不******2 main3

不******2 main3

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

1.用 gcc 生成 .a 静态库和 .so 动态库
1.1编辑生成例子程序 hello.h、hello.c 和 main.c

dxc@dxc-virtual-machine:~$ mkdir test1    //创建test1目录
dxc@dxc-virtual-machine:~$ cd test1       //进入test1目录,创建文件将处于该文件夹内
dxc@dxc-virtual-machine:~/test1$ touch hello.h   //依次创建头文件、源程序、主程序
dxc@dxc-virtual-machine:~/test1$ touch hello.c
dxc@dxc-virtual-machine:~/test1$ touch main.c
  • 1
  • 2
  • 3
  • 4
  • 5

1.2编译文件

dxc@dxc-virtual-machine:~/test1$ gedit hello.h   //进入头文件编辑界面并输入代码
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif //HELLO_H
dxc@dxc-virtual-machine:~/test1$ gedit hello.c   //进入源程序编辑界面并输入代码
#include <stdio.h>
void hello(const char *name)
{
   
printf("Hello %s!\n", name);
}
dxc@dxc-virtual-machine:~/test1$ gedit main.c  //进入主程序编辑界面并输入代码
#include "hello.h"
int main()
{
   
hello("everyone");
return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

1.3将 hello.c 编译成.o 文件

dxc@dxc-virtual-machine:~/test1$ gcc -c hello.c  //生成 hello.o 文件
dxc@dxc-virtual-machine:~/test1$ ls  //运行 ls 命令查看是否生存了 hello.o 文件
  • 1
  • 2

如图已生成在这里插入图片描述
1.4创建静态库

dxc@dxc-virtual-machine:~/test$ ar -crv libmyhello.a hello.o  //创建静态库文件libmyhello.a
dxc@dxc-virtual-machine:~/test$ ls  //查看结果
  • 1
  • 2

如图已将创建完成在这里插入图片描述
1.5在程序中使用静态库
方法一:

dxc@dxc-virtual-machine:~/test1$ gcc -o hello main.c -L. -lmyhello
  • 1

在这里插入图片描述

方法二:

dxc@dxc-virtual-machine:~/test1$ gcc main.c libmyhello.a -o hello
  • 1

在这里插入图片描述
方法三:

dxc@dxc-virtual-machine:~/test$ gcc -c main.c  //生成 main.o
dxc@dxc-virtual-machine:~/test$ gcc -o hello main.o libmyhello.a  //生成可执行文件
dxc@dxc-virtual-machine:~/test$ ./hello
  • 1
  • 2
  • 3

在这里插入图片描述

1.6创建动态库文件

dxc@dxc-virtual-machine:~/test1$ gcc -shared -fPIC -o libmyhello.so hello.o  //创建动态库文件 libmyhello.so
dxc@dxc-virtual-machine:~/test1$ ls  //查看动态库文件是否生成
hello  hello.c  hello.h  hello.o  libmyhello.so  main.c  main.o
  • 1
  • 2
  • 3

在这里插入图片描述
1.7使用动态库

dxc@dxc-virtual-machine~/test1$ gcc -o hello main.c -
    本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
    推荐阅读
    相关标签
      

    闽ICP备14008679号