上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页
摘要: http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm 大部分内容抄的以上文章的。 1 阅读全文
posted @ 2019-06-16 12:15 心田居士 阅读(5393) 评论(1) 推荐(1) 编辑
摘要: Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件。 下面是关于.so的介绍: 一、引言 通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成 阅读全文
posted @ 2019-06-16 11:45 心田居士 阅读(36796) 评论(3) 推荐(3) 编辑
摘要: Linux 下动态链接库(shared object file,共享对象文件)的文件后缀为.so,它是一种特殊的目标文件(object file),可以在程序运行时被加载(链接)进来。使用动态链接库的优点是:程序的可执行文件更小,便于程序的模块化以及更新,同时,有效内存的使用效率更高。 GCC 生成 阅读全文
posted @ 2019-06-16 11:18 心田居士 阅读(10800) 评论(0) 推荐(3) 编辑
摘要: 编译多个源代码文件会生成多个目标文件,每个目标文件都包含一个源文件的机器码和相关数据的符号表。除非使用-c选项指示 GCC 只编译不链接,否则 GCC 会使用临时文件作为目标文件输出: $ gcc -c main.c $ gcc -c func.c 这些命令会在当前目录中生成两个目标文件,分别是 m 阅读全文
posted @ 2019-06-16 11:16 心田居士 阅读(8167) 评论(0) 推荐(0) 编辑
摘要: 链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件。在链接过程中,它必须把符号(变量名、函数名等一些列标识符)用对应的数据的内存地址(变量地址、函数地址等)替代,以完成程序中多个模块的外部引用。 而且,链接器也必须将程序中所用到的所有C标准库函数加入其中。对于链接器而言 阅读全文
posted @ 2019-06-16 11:11 心田居士 阅读(3742) 评论(0) 推荐(1) 编辑
摘要: 编译器的核心任务是把C程序翻译成机器的汇编语言(assembly language)。汇编语言是人类可以阅读的编程语言,也是相当接近实际机器码的语言。由此导致每种 CPU 架构都有不同的汇编语言。 通常情况下,GCC 把汇编语言输出存储到临时文件中,并且在汇编器执行完后立刻删除它们。但是可以使用-S 阅读全文
posted @ 2019-06-16 11:01 心田居士 阅读(714) 评论(0) 推荐(0) 编辑
摘要: C语言代码在交给编译器之前,会先由预处理器进行一些文本替换方面的操作,例如宏展开、文件包含、删除部分代码等。 在正常的情况下,GCC 不会保留预处理阶段的输出文件,也即.i文件。然而,可以利用-E选项保留预处理器的输出文件,以用于诊断代码。-E选项指示 GCC 在预处理完毕之后即可停止。 默认情况下 阅读全文
posted @ 2019-06-16 10:58 心田居士 阅读(873) 评论(0) 推荐(0) 编辑
摘要: GCG -o选项用来指定输出文件,它的用法为: [infile] 表示输入文件(也即要处理的文件),它可以是源文件,也可以是汇编文件或者是目标文件;[outfile] 表示输出文件(也即处理的结果),它可以是预处理文件、目标文件、可执行文件等。 [infile] 和 [outfile] 可以是一个文 阅读全文
posted @ 2019-06-16 10:50 心田居士 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: -c选项表示编译、汇编指定的源文件(也就是编译源文件),但是不进行链接。使用-c选项可以将每一个源文件编译成对应的目标文件。 目标文件是一种中间文件或者临时文件,如果不设置该选项,gcc 一般不会保留目标文件,可执行文件生成完成后就自动删除了。 注意,使用-c选项表示只编译源文件,而不进行链接,因此 阅读全文
posted @ 2019-06-16 10:38 心田居士 阅读(3109) 评论(0) 推荐(0) 编辑
摘要: GCC 是一个功能强大的编译器,其编译选项非常多,有些选项通常不会用到。 GCC 从最初的一个试验型的玩具发展到现在 Linux 环境下的标准编译器,其命令选项也从最开始的 4 个发展到了现在的上千个。本节只介绍常用的 GCC 编译选项。 gcc 是一个功能强大的编译器,其编译选项非常多。有些选项一 阅读全文
posted @ 2019-06-16 10:32 心田居士 阅读(1357) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页