C++ 编译、链接和可执行文件简介

 2024-03-11 01:08:13  阅读 0

背景:最近在地图和项目中都在写c/c++。 虽然g++/cmake已经编译完成,但是相关内容有点模糊。 让我总结一下。

我写的都是我自己的理解。 由于我通常从事实际的项目和业务,所以我只会写到我理解我所看到的为止。

欢迎讨论,如有错误请指正。

概述

编译的目的:将代码(.cpp)翻译成机器可以理解的二进制文件(.o for linux,.obj for win)

链接的目的:将目标文件(linux 为.o,win 为.obj)转换为可执行文件(linux 为.out,win 为.exe)。 随后,可以将代码与可执行文件分离。 例如,可以将可执行文件单独放在服务器上运行。

可执行文件可以在其他地方直接运行。 该图是与BP神经网络的前向程序相关的概念。

1.():将cpp代码翻译成机器语言并保存到目标文件中。 CPP->OBJ。

2.编译单元(Unit):这里指的是一个.cpp文件和所有.h文件。 .h 文件中的代码将扩展为包含它的 .cpp 文件,然后编译器编译该 .cpp 文件。 作为 .obj 文件

调用语句格式_c语言调用so文件_调用文件的方法有哪些

一对 .cpp 和 .h

3、目标文件(Obj File):编译后生成的文件,以机器码的形式包含编译单元中的所有函数和数据、导出的符号表、未解析的符号表、地址重定向表等。要点:包括可重定位文件(.o、.obj 文件)和库文件(.a、.so 文件)

4.编译器():将一种语言(通常是高级语言)翻译成另一种语言(通常是低级语言)的程序

5、静态链接库(.so):多个目标文件的集合

6.动态链接库(.a):另一个可执行文件与其他目标文件组合在一起。 动态链接库只有在程序执行时才会被调用。

调用文件的方法有哪些_c语言调用so文件_调用语句格式

参考另一位博主的介绍

7、链接:链接器的主要工作是将相关的目标文件(库文件、.o文件)相互连接起来,最终转化为可执行文件。理解:主要是定位各个函数数据,定位地址,查找每个未解析符号的定义

编译、链接和执行过程

c语言调用so文件_调用文件的方法有哪些_调用语句格式

编写代码:假设你已经编写了如下代码a.cpp、ah、b.cpp、bh以及需要链接的库c.so。 编译两个单元a和b。 链接所有目标文件和库以生成可执行文件。

调用文件的方法有哪些_c语言调用so文件_调用语句格式

下次内容应该是g++和cmake

参考内容:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码