gcc -o是什么意思

2024-05-18 06:49

1. gcc -o是什么意思

gcc在windows下有很出名的,从Linux下转过来的(gcc原来是linux下的) 叫MinGW
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境。
-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
一般语法:
gcc filename.c -o filename
上面的意思是如果你不打 -o filename 那么默认就是输出filemame.out.这个-o就是用来控制输出文件的。

gcc -o是什么意思

2. gcc 生成动态库时-fpic选项是什么意思。

使用 -fPIC 选项,会生成 PIC 代码。.so 要求为 PIC,以达到动态链接的目的,否则,无法实现动态链接。
non-PIC 与 PIC 代码的区别主要在于 access global data, jump label 的不同。
比如一条 access global data 的指令,
non-PIC 的形势是:ld r3, var1
PIC 的形式则是:ld r3, var1-offset@GOT,意思是从 GOT 表的 index 为 var1-offset 的地方处
指示的地址处装载一个值,即 var1-offset@GOT 处的4个 byte 其实就是 var1 的地址。这个地址只有在运行的时候才知道,
是由 dynamic-loader(ld-linux.so) 填进去的。
再比如 jump label 指令
non-PIC 的形势是:jump printf ,意思是调用 printf。
PIC 的形式则是:jump printf-offset@GOT,意思是跳到 GOT 表的 index 为 printf-offset 的地方处
指示的地址去执行,这个地址处的代码摆放在 .plt section,每个外部函数对应一段这样的代码,其功能是呼叫
dynamic-loader(ld-linux.so) 来查找函数的地址(本例中是 printf),然后将其地址写到 GOT 表的 index 为 printf-offset 的地方,
同时执行这个函数。这样,第2次呼叫 printf 的时候,就会直接跳到 printf 的地址,而不必再查找了。
GOT 是 data section, 是一个 table, 除专用的几个 entry,每个 entry 的内容可以再执行的时候修改;
PLT 是 text section, 是一段一段的 code,执行中不需要修改。
每个 target 实现 PIC 的机制不同,但大同小异。
比如 MIPS 没有 .plt, 而是叫 .stub,功能和 .plt 一样。

3. makefile里面 gcc -O2 -o $@ $< 是什么意思

-O2表示优化选项,2表示最优优化,即编译器会优化你的程序;-o表示后边接的是文件名称;$@是Makefile的通配符,代指前面指定的文件名。
一些常见的自动化变量说明如下:
(1) $@ ——目标文件的名称;
(2) $^ ——所有的依赖文件,以空格分开,不包含重复的依赖文件;
(3) $< ——第一个依赖文件的名称。
示例:
main:main.c sort.o
gcc main.c sort.o -o main
表示为简洁的就是:
main:main.c sort.o
gcc $^ -o $@

扩展资料:
在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile在绝大多数的IDE 开发环境中都在使用,已经成为一种工程的编译方法。
参考资料来源:百度百科-Makefile

makefile里面 gcc -O2 -o $@ $< 是什么意思

4. 什么是瑞士ARL

瑞士ARL是开发、制造和销售光谱仪的主要供应商,该产品用于金属、采矿、水泥工业的日常实验和产品控制。这些分析所采用的技术主要是基于光学发射光谱学和X射线荧光谱测定法。 
60多年来,在欧洲、美国甚至在快速发展的亚洲市场,许多主要的钢厂、精铝厂和水泥厂中都采用我们的产品,由于采用高能软件和自动化装置,我公司的光谱仪性能更加完善。
http://www.chem17.com/Product/Detail/503975.html
不知道是不是你要的?

5. linux系统中gcc的命令怎么用?

Gcc最基本的用法是∶gcc [options] [filenames]   其中options就是编译器所需要的参数,filenames给出相关的文件名称。   -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。   -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。   -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。   -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。   -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。   -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。

linux系统中gcc的命令怎么用?

6. gcc编译流程?

gcc编译分为四部;

第一步,预编译,将程序中的宏定义等预编译;

第二步,编译,将*.h,*.c等文件编译成为*.o文件;

第三步,汇编;

第四步,连接,将*.o文件连接库,生成可执行文件!

7. fedora下如何安装GCC和G++

方法很多:
1、安装系统的时候选择安装这些包;

2、系统装好后,可以用系统DVD镜像或光盘来安装;
                          如果能联网,可以yum install的方法安装;
                          还可以wget下载后再安装。

fedora下如何安装GCC和G++

8. Gcc网游学院怎么样

我在GCC网游动漫学院上过!它是广州地区很好的一个学动漫的学校。

它最大的优势是老师水平都很高,而且教学很认真!!水平真的很高!我学AE后期的时候学的如痴如醉。还有那个美国海归,什么都懂,什么都很精通,我和同学都觉得自己遇到他教真是太幸运了。

另外,GCC动漫学院环境也不错!在华工里面学一年,真是很爽,有时可以跑去华工的图书馆,湖边,心情不自觉就很好了。我听说GCC的白云校区环境也还可以,是个学习的安静地方,不过我没去过!

GCC推荐就业的公司很多。我学的是王牌动漫课程,推荐了三次,挑了一个自己满意的工作,相比我那些大学同学,我觉得自己真的很幸运!

我在GCC学了很多东西,一年比我大专学动漫三年学到的东西多太多了。之前学了三年,仅仅入个门,到了GCC才是真正学精学通了。

批评一下GCC的网站,作品太少太简单,学生做的好作品都没怎么上传。
最新文章
热门文章
推荐阅读