首页 > 编程知识 正文

VS开发工具包,哪些软件是c语言编写的

时间:2023-05-03 21:13:57 阅读:155089 作者:4092

1 .编写程序的工具:

indent命令会自动调整c代码的缩进样式。 我个人喜欢indent -kr

2.c语言程序编译:

1.gcc编译器:

gcc是一种与ANSI C兼容的编译器,c编译器也可以编译c程序。 实际上,在g编译器内部调用了gcc

gcc命令启动c编译系统,当运行gcc时,它完成预处理、编译、汇编和连接四个步骤,最终生成可执行文件。 缺省情况下,生成的可执行文件保存为a.out文件。 gcc处理的各种文件类型包括:

静态链接库(.a )、共享链接库).so )、c语言源文件).c )、c源文件).c或. cpp )、汇编语言文件).s )、预处理文件).I )、塔塔

请注意,gcc [options] filename-list不能在一个连接字符之后跟一系列选项

2 .通信库:

标准系统库文件通常存储在Linux文件系统的/lib和/usr/lib目录中。

缺省情况下,c语言编译器仅搜索标准c语言库。 要搜索其他库文件,必须将库文件放在标准目录中。 库文件必须遵循特定的命名约定,并且必须在命令行中明确指定。

库文件的名称始终以lib开头,下一部分指示这是什么库,文件名的末尾为. a或. so。

例如,libm.a是静态函数库;

gcc-ohellohello.c/usr/lib/libm.a

gcc -o hello hello.c -lm -l优先搜索共享库

如果库文件不在标准目录中,请使用-L增加库的搜索路径

gcc-o X11 pro 1x1 hello.c-l/usr/open win/Li B- lx11

1 .静态库:

包装程序最简单的格式是“可用状态”下的一组目标文件

只需使用gcc -c和ar命令分别编译函数,即可创建和维护自己的静态库。

2 .共享库:

静态清单位于和使用它的每个APP应用程序中,而共享库不在使用它的APP应用程序中,只有在APP应用程序正在运行时才能通过访问共享代码来节省内存。

在Linux系统上,负责装载共享库和解析客户端程序函数引用的程序是ld.so、或ld-linux.so.2或ld-lsb.so.1,在其他位置查找共享库的是fare

3 .生成工具:

make工具依赖于名为makefile或makefile的特殊文件。 该文件描述了系统中每个模块之间的依赖关系,如果系统中的某些文件发生更改,make将根据这些关系确定需要重新编译的文件的最小集合。

makefile是一个文本格式的数据库文件,包含指示make处理哪些文件以及如何处理的规则。

这些规则主要是用于运行从名为target目标文件的文件、从另一个名为dependency依赖文件的文件生成的文件及其进程的命令。

基于这些信息,make会检查磁盘上的文件,如果生成或修改目标文件的时间(文件时间戳)至少比其依赖文件早,make会运行相应的命令以更新目标文件

化妆文件包含一组化妆规则,每个化妆规则都包含以下内容:

目标文件列表:从属文件列表

命令列表

除非另有指定,否则make工作目录是当前目录。

可以将以#开头的作为注释行,后跟行号“”,然后在多行上继续执行一个命令。

通常,调用make命令时可以输入以下内容:

生成目标

target是makefile中定义的目标之一,如果省略target,则会生成makefile中定义的第一个目标。

makefile变量:

变量定义: VARNAME=string

引用变量: ${VARNAME}

变量通常在Makefile之前有丁义。 按照惯例,所有Makefile变量都必须大写。

除了用户定义的变量外,make还可以使用环境变量、自动变量和预定义变量。 这是因为,在启动make时,make会读取系统中当前定义的环境变量,并创建名称和值相同的变量。

常用预定义变量: [emailprotected],$?$

另外,由于规则的命令重复,所以可以省略

4.gdb调试工具:

要使用gdb调试器,必须使用-g参数重新编译程序。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。