当前位置:首页 » 编程软件 » g编译参数

g编译参数

发布时间: 2022-06-26 09:44:20

① gcc -g -o -c分别是什么意思

-c和-o都是gcc编译器的可选参数。

-c表示只编译(compile)源文件但不链接,会把.c或.cc的c源程序编译成目标文件,一般是.o文件。-o用于指定输出(out)文件名。不用-o的话,一般会在当前文件夹下生成默认的a.out文件作为可执行程序。

例如:

gcc -c test.c将生成test.o的目标文件

gcc -o app test.c将生成可执行程序app

gcc -c a.c -o a.o表示把源文件a.c编译成指定文件名a.o的中间目标文件(其实在这里,把-o a.o省掉,效果是一样的,因为中间文件默认与源文件同名,只是后缀变化)。

1、如果GCC不带-C参数,编译一个源代码文件(test.c)。那么会自动将编译和链接一步完成,并生成可执行文件。可执行文件可以有-o参数指定(test.o)

2、如果是多个文件,则需要先编译成中间目标文件(一般是.o文件),在链接成可执行文件,一般习惯目标文件都是以.o后缀,也没有硬性规定可执行文件不能用.o文件。

(1)g编译参数扩展阅读:

gcc:GNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由。

基本用法:

-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。

-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速度就相应地要慢一些。

linux c 编译加什么参数 可以gdb

Linux C编译命令是gcc,gcc加上一个-g参数,编译出来的程序才能带有gdb的调试信息,才能用gdb调试。不光是gcc编译命令,编译C++程序的g++命令也是用-g选项来表示编译出的程序要带上gdb调试信息。

③ gcc有哪些命令参数

用法:gcc [选项] 文件...
选项:
-pass-exit-codes 在某一阶段退出时返回最高的错误码
--help 显示此帮助说明
--target-help 显示目标机器特定的命令行选项
(使用‘-v --help’显示子进程的命令行参数)
-mpspecs 显示所有内建 spec 字符串
-mpversion 显示编译器的版本号
-mpmachine 显示编译器的目标处理器
-print-search-dirs 显示编译器的搜索路径
-print-libgcc-file-name 显示编译器伴随库的名称
-print-file-name=<库> 显示 <库> 的完整路径
-print-prog-name=<程序> 显示编译器组件 <程序> 的完整路径
-print-multi-directory 显示不同版本 libgcc 的根目录
-print-multi-lib 显示命令行选项和多个版本库搜索路径间的映射
-print-multi-os-directory 显示操作系统库的相对路径
-Wa,<选项> 将逗号分隔的 <选项> 传递给汇编器
-Wp,<选项> 将逗号分隔的 <选项> 传递给预处理器
-Wl,<选项> 将逗号分隔的 <选项> 传递给链接器
-Xassembler <参数> 将 <参数> 传递给汇编器
-Xpreprocessor <参数> 将 <参数> 传递给预处理器
-Xlinker <参数> 将 <参数> 传递给链接器
-combine 将多个源文件一次性传递给汇编器
-save-temps 不删除中间文件
-pipe 使用管道代替临时文件
-time 为每个子进程计时
-specs=<文件> 用 <文件> 的内容覆盖内建的 specs 文件
-std=<标准> 指定输入源文件遵循的标准
--sysroot=<目录> 将 <目录> 作为头文件和库文件的根目录
-B <目录> 将 <目录> 添加到编译器的搜索路径中
-b <机器> 为 gcc 指定目标机器(如果有安装)
-V <版本> 运行指定版本的 gcc(如果有安装)
-v 显示编译器调用的程序
-### 与 -v 类似,但选项被引号括住,并且不执行命令
-E 仅作预处理,不进行编译、汇编和链接
-S 编译到汇编语言,不进行汇编和链接
-c 编译、汇编到目标代码,不进行链接
-o <文件> 输出到 <文件>
-x <语言> 指定其后输入文件的语言
允许的语言包括:c c++ assembler none
‘none’意味着恢复默认行为,即根据文件的扩展名猜测
源文件的语言

以 -g、-f、-m、-O、-W 或 --param 开头的选项将由 gcc 自动传递给其调用的
不同子进程。若要向这些进程传递其他选项,必须使用 -W<字母> 选项。

④ Linux下gcc编译介绍

Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。
.c为后缀的文件,c语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
Gcc的执行过程
虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。
命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。

Gcc的基本用法和选项
在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。
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所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况∶
A)#include
B)#include “myinc.h”
其中,A类使用尖括号(< >),B类使用双引号(“ ”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而对于B类,cpp在当前目录中搜寻头文件,这个选项的作用是告诉cpp,如果在当前目录中没有找到需要的文件,就到指定的dirname目录中去寻找。在程序设计中,如果我们需要的这种包含文件分别分布在不同的目录中,就需要逐个使用-I选项给出搜索路径。
-Ldirname,将dirname所指出的目录加入到程序函数档案库文件的目录列表中,是在连接过程中使用的参数。在预设状态下,连接程序ld在系统的预设路径中(如/usr/lib)寻找所需要的档案库文件,这个选项告诉连接程序,首先到-L指定的目录中去寻找,然后到系统预设路径中寻找,如果函数库存放在多个目录下,就需要依次使用这个选项,给出相应的存放目录。
-lname,在连接时,装载名字为“libname.a”的函数库,该函数库位于系统预设的目录或者由-L选项确定的目录下。例如,-lm表示连接名为“libm.a”的数学函数库。
上面我们简要介绍了gcc编译器最常用的功能和主要参数选项,更为详尽的资料可以参看Linux系统的联机帮助。
假定我们有一个程序名为test.c的C语言源代码文件,要生成一个可执行文件,最简单的办法就是∶
gcc test.c
这时,预编译、编译连接一次完成,生成一个系统预设的名为a.out的可执行文件,对于稍为复杂的情况,比如有多个源代码文件、需要连接档案库或者有其他比较特别的要求,就要给定适当的调用选项参数。再看一个简单的例子。
整个源代码程序由两个文件testmain.c 和testsub.c组成,程序中使用了系统提供的数学库,同时希望给出的可执行文件为test,这时的编译命令可以是∶
gcc testmain.c testsub.c □lm □o test
其中,-lm表示连接系统的数学库libm.a。

Gcc的错误类型及对策
Gcc编译器如果发现源程序中有错误,就无法继续进行,也无法生成最终的可执行文件。为了便于修改,gcc给出错误资讯,我们必须对这些错误资讯逐个进行分析、处理,并修改相应的语言,才能保证源代码的正确编译连接。gcc给出的错误资讯一般可以分为四大类,下面我们分别讨论其产生的原因和对策。

第一类∶C语法错误
错误资讯∶文件source.c中第n行有语法错误(syntex errror)。这种类型的错误,一般都是C语言的语法错误,应该仔细检查源代码文件中第n行及该行之前的程序,有时也需要对该文件所包含的头文件进行检查。有些情况下,一个很简单的语法错误,gcc会给出一大堆错误,我们最主要的是要保持清醒的头脑,不要被其吓倒,必要的时候再参考一下C语言的基本教材。
第二类∶头文件错误
错误资讯∶找不到头文件head.h(Can not find include file head.h)。这类错误是源代码文件中的包含头文件有问题,可能的原因有头文件名错误、指定的头文件所在目录名错误等,也可能是错误地使用了双引号和尖括号。

第三类∶档案库错误
错误资讯∶连接程序找不到所需的函数库,例如∶
ld: -lm: No such file or directory
这类错误是与目标文件相连接的函数库有错误,可能的原因是函数库名错误、指定的函数库所在目录名称错误等,检查的方法是使用find命令在可能的目录中寻找相应的函数库名,确定档案库及目录的名称并修改程序中及编译选项中的名称。
第四类∶未定义符号
错误资讯∶有未定义的符号(Undefined symbol)。这类错误是在连接过程中出现的,可能有两种原因∶一是使用者自己定义的函数或者全局变量所在源代码文件,没有被编译、连接,或者干脆还没有定义,这需要使用者根据实际情况修改源程序,给出全局变量或者函数的定义体;二是未定义的符号是一个标准的库函数,在源程序中使用了该库函数,而连接过程中还没有给定相应的函数库的名称,或者是该档案库的目录名称有问题,这时需要使用档案库维护命令ar检查我们需要的库函数到底位于哪一个函数库中,确定之后,修改gcc连接选项中的-l和-L项。
排除编译、连接过程中的错误,应该说这只是程序设计中最简单、最基本的一个步骤,可以说只是开了个头。这个过程中的错误,只是我们在使用C语言描述一个算法中所产生的错误,是比较容易排除的。我们写一个程序,到编译、连接通过为止,应该说刚刚开始,程序在运行过程中所出现的问题,是算法设计有问题,说得更玄点是对问题的认识和理解不够,还需要更加深入地测试、调试和修改。一个程序,稍为复杂的程序,往往要经过多次的编译、连接和测试、修改。下面我们学习的程序维护、调试工具和版本维护就是在程序调试、测试过程中使用的,用来解决调测阶段所出现的问题。窗体顶端
窗体底端

⑤ 请问为什么我在用gcc编译c语言写的一个小程序时不能使用“wall”参数

在控制台 gcc /hello.c -o /hello.out,编译没错的话,就会在根目录出现一个hello.out的文件,然后 /hello.out,就可以看到结果了. 具体参阅GCC的用法 一.gcc历史 GCC最早是Richard Stallman在十几年前编写的针对于C的编译器,意思即为GNU C Compiler,后来发展支持Ada,C++,Java,Objective C,Pascal,COBOL,以及支持逻辑编程的Mercury语言,后来其英文原名变为:GNU Compiler ollection([1]).除此之外,GCC对于各种硬件平台都提供了完善的支持。 一般的,GCC的编译功能包括gcc(C的编译器),g++(C++的编译器),在编译过程中,一共有四步工作。 1.预处理,生成i文件,C文件编译为.i文件,C++文件编译为.ii文件,它们都为源程序的预处理结果文件.以最简单的Hello World程序为例: ********************************* // test.c #include "stdio.h" #define MAX 9 int main() { int a; a=MAX; printf("Hello Worldn"); } ********************************* 用cpp test.c test.i 可得到预处理文件test.i,通过查看该文件,我们可以看到,我们引入的include文件已经被引入处理,define定义的部分已经被完全带入。 2.预处理文件转换成汇编语言,生成.s文件。这一步利用egcs来完成(在mingw标准包中没有见到这个预编译器,所以测试没有成功,将继续测试) 3.汇编变为目标文件,生成.o文件,利用as来完成。 4.连接目标文件,生成可执行程序,利用ld来完成.(后续继续研究ld编译过程。) 二.GCC参数祥解 -x language filename 设定文件使用的语言,这样源程序的后缀名无效了,并对gcc后接的多个编译文件都有效。这样如 果存在.c和.cpp文件联编会有问题,解决这个问题用到了下一个参数 -x none filename,在下面做介绍。因为在预处理过程中对于.c和.cpp文件的处理方式是不一样的。可以使用的参数有:'c','objective- c','c-header','c++','cpp-output','assembler','assembler-with-cpp'.编译的时候, 如果有这样的一个用C语言写的test.tmp的文件,用gcc编译的时候就用gcc -x c test.tmp就可以让gcc用编译C语言的方式来编译test.tmp. -x none filename 关掉上一个选项,就是让gcc根据文件名后缀,自动识别文件类型。如用下列方式编译: gcc -x c test.tmp -x none test2.c 这样可以自由地选择编译方式 -c 只激活预处理,编译和汇编,也就是把程序做成obj文件。如gcc -c test.c 就会生成test.o文件,当然这样还只是目标文件,需要经过ld连接器对所有的.o文件进行联接才能生成可执行文件. -S 只激活预处理和编译,把文件编译到汇编代码。相当到对源程序做一个egcs操作,生成.s文件。可以查看生成的汇编文件结果。这个对于研究汇编语言的程序员来说是很有作用的。 -E 只激活预处理,这个将对文件进行预处理,将对所有引入的include文件和define定义的量进行代换,为我们开头所说的gcc 编译的第一步,即用cpp命令将程序语言文件进行预处理.但这一步不生成结果文件,如果你需要生成结果文件保存,那么需要利用系统中的输出重定向。 -o 定制目标名称,缺省的时候在unix和linux平台下gcc filename的结果是一个文件名为a.out的文件,windows下用mingw里带的gcc编译结果是a.exe。如果我们用gcc -o hello.exe test.c的话,将生成hello.exe可执行程序。这个并不一定只限于最后一步可执行程序的生成,如用上面所讲的-S生成的汇编程序也可以用-o参 数生成,比如 gcc -o hello.asm -S test.c 这样hello.asm就是test.c经过预处理和编译之后的结果。 -pipe 使用管道来代替编译中的临时文件,因为编译的整个过程有几个不同的步骤,每一个步骤都是以前一个步骤的输出为输入的,这样就涉 及到数据传递的问题,在没有-pipe参数的情况下,是用临时文件的形式来进行传递的,在有该情况的时候就利用管道来传递中间数据。当然,在某些系统中, 汇编不能读取管道数据,这样这个参数就不能正常工作了。 -ansi 关闭gnu c与ansi c不兼容的特性,激活ansi c的专有特性,在此情况下,处理器会定义一个__STRICT_ANSI__的宏,在有些头文件中会关注该宏是否被申明过,以避免某些函数的引入。此项可参照ansi c与gnu c的差别得到更多理解。 -fno-asm 此选项为ansi选项功能的一部分,禁止将asm,inline,typeof用作关键字。 -fno-strict-prototype 这个选项只对g++有作用。这个参数让编译器将所有没有参数的函数都认为是没有显式参数的个数和类型的函数,而不是没有参数。而对于gcc来说,会将没有带参数的函数认成没有显式说明的类型。 -fthis-is-variable 这个参数仅对C++程序有效,可以让this做一般变量使用,允许对this赋值. -fcond-mismatch 允许条件表达式的第二和第三参数类型不匹配.表达式的值为void型. -funsigned-char -fno-signed-char -fsigned-char -fno-unsigned-char 这四个是对char在编译时进行的设置,它们分别决定将char设为unsigned char或signed char. -include filename 加入头文件的位置,以使程序中顺利使用#include ,这样就可以在编译的时候这样编译:gcc test.c -include ./include/test.h,进行联编。 -imacros filename 将filename中的宏扩展到gcc的输入文件里,宏定义本身不会出现在输入文件中。意即在编译某个文件test.c的时候,它里面申明的宏如果在没有用到该参数的时候,生成目标文件之后就会被丢弃掉,而在用了这个参数之后,这些宏将被保留用于之后文件的编译。 -Dmacro 相当于#define macro,宏的内容为字符串'1'。如在编译的时候使用gcc -o test.exe test.c -DDEBUG就相当于在test.c里面定义了DEBUG宏,值为字串'1'。可用如下程序测试可知: ********************************** //test.c #include "stdio.h" int main() { printf("Hello Worldn"); #ifdef DEBUG printf("hellon"); #endif } ********************************** 如用gcc -o test.exe test.c编译,刚运行结果为: Hello World 如用gcc -o test.exe test.c -DDEBUG编译,则运行结果为: Hello World hello 因此可以在下一种编译方法中相当于在test.c里面定义了DEBUG宏。 -Dmacro=define 作用同上,但设定宏的值为define. -Umacro 相当于给程序中定义的宏作了一次undefine.即:#undef macro -undef 取消了对任何非标准友的定义 -Idir 在#include 的时候,先在用这个参数指定的位置找头文件,如果没有找到,则到缺省的目录找头文件 -I- 取消-Idir的作用,表明以后编译的程序将不在-Idir指定的目录里寻找头文件。 -idirafter dir 在-I的目录里面查找失败之后,再在这个目录里面查找头文件,这样的参数为设置头文件查找的优先级问题比较有帮助。 -iprefix prefix -iwithprefix dir 这两个参数一起用,在-I目录寻找失败的时候,到prefix的dir下查找头文件。 -nostdinc 编译器不再系统缺省的头文件目录里面找头文件。这样就可以精确地确定头文件的来源,应该比较慎用,在对编译器不是很了解的情况下容易造成编译失败. -nostdinc C++ 不在g++的标准路径中找头文件,但在其他的路径中继续找。在创lib的时候用。 -C 为了有效的分析程序,有预处理的时候不删除注释信息,与-E一起使用,有利用分析程序的过程。 -M 生成文件的关联的信息,这样就可以知道源代码文件里面关联了哪些它所依赖的头文件。 -MM 同上,但忽略由#include 造成的依赖关系 -MD 跟-M相当,但是输出导入到.d文件中,如gcc -MD test.c,刚输出的依赖关系存放在test.d文件里。 -MMD 跟-MM相同,但是输出到.d文件中,如gcc -MMD test.c,刚输出的依赖关系存放在test.d文件里。忽略#include 的关系 -Wa,option 这个参数将option传给汇编程序,如果option中有逗号,则会把option分成多项,传给汇编程序。 -Wl,option 这个参数将option传给连接程序,如果option中有逗号,则会把option分成多项,传给连接程序。 -llibrary 用于制定编译的时候使用的库,如 gcc -lgtk tset.c则程序使用gtk库进行编译,不过需要注意的是gcc库一般都是以libname.a来命名库文件,在用-l参数来加入库文件的时候,直接用-lname来引入,而前面的lib被省掉。这一点需要注意。 -Ldir 编译的时候设定库文件查找的路径,不然的话,编译器只在标准库路径里面找库。 -00 -01 -02 -03 编译器的优化选项,-00表示没有优化,-01为缺省值,-03为最高。 -g 在编译的时候,产生调试信息 -gstabs 以stabs格式声称调试信息,但不包括gdb的调试信息。 -gstabs+ 以stabs格式声称调试信息,包括gdb的调试信息。 -ggdb 该参数将把gdb的调试信息输出 -static 这个参数将禁止使用动态库,这样程序只能连接静态库。 -share 这个参数将让程序尽量使用动态库 -traditional 试图让编译器支持传统的C语言的特性. 三.总结 gcc的参数还远远多于上面写到的这些,但是有以上的参数我们已经可以对gcc的大部分编译掌握的比较熟练了,更多的参数介绍可以参照GCC的manual,现在已有翻译了的中文手册,地址在下面的参考文献里面被列出,有兴趣的朋友可以参考。 ~

⑥ 如何识别java命令行编译参数

javac

用法:javac <选项> <源文件>
其中,可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件的位置
-cp <路径> 指定查找用户类文件的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖安装的扩展目录的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-d <目录> 指定存放生成的类文件的位置
使用-d参数,如类中定义了包,则编译时会自动生成包, 如:javac -d . helloworld.java
表示在当前目录下编译Helloworld 类。.表示当前目录,如helloword中定义有包,则在当前目录下生成包:

-encoding <编码> 指定源文件使用的字符编码
-source <版本> 提供与指定版本的源兼容性
-target <版本> 生成特定 VM 版本的类文件
-version 版本信息
-help 输出标准选项的提要
-X 输出非标准选项的提要
-J<标志> 直接将 <标志> 传递给运行时系统

java

用法: java [-选项] 类 [参数...]
(执行一个类)
或者 java [-选项] -jar jar文件 [参数...]
(执行一个jar文件)
其中,可能的选项包括:
-client 选择 "client" VM(ginger547:应该是指Virtual Machine)
-server 选择 "server" VM
-hotspot 与 "client" VM同义 [不赞成]
默认情况的VM是client.
-cp <一个文件夹和zip/jar文件组成的类搜索路径>
-classpath <一个文件夹和zip/jar文件组成的类搜索路径>
一个由文件夹,JAR压缩文件,或者ZIP压缩文件组成的用来搜索类的列表
-D<名字>=<值>
设置一个系统属性
-verbose[:class|gc|jni]
使详细输出变的可用
-version 打印产品版本然后退出
-version:<值>
只运行指定版本
-showversion 打印产品版本后继续
-jre-restrict-search | -jre-no-restrict-search
在版本搜索的时候,包含/排除用户私人的JRE
-? -help 打印帮助信息
-X 打印非标准选项帮助
-ea[:<包名>...|:<类名>]
-enableassertions[:<包名>...|:<类名>]
使断言可用
-da[:<包名>...|:<类名>]
-disableassertions[:<包名>...|:<类名>]
是断言不可用
-esa | -enablesystemassertions
使系统级断言可用
-dsa | -disablesystemassertions
使系统级断言不可用
-agentlib:<库名>[=<选项>]
加载本地代理库<库名>,例如. -agentlib:hprof
同时可查看, -agentlib:jdwp=help和 -agentlib:hprof=help
-agentpath:<路径名>[=<选项>]
通过全路径名来加载本地代理库
-javaagent:<jar路径>[=<选项>]
加载Java编程语言代理,可查看 java.lang.instrument

⑦ (Linux)gcc进行优化编译的参数是什么

将file.c文件编译产生可执行文件myprog(-o选项),并且在编译的时候,生成调试信息(-g信息)。让gdb调试器可以调试该程序。
gcc是编译器程序名字
-o是可执行文件名字输出参数
-g是插入调试信息参数
当然是调试可执行文件myprog

⑧ 如何判断GCC或者G++ 编译的时候带了

通常找不到指定函数不是因为编译参数问题。而是你 g.cpp 中在include f.h的时候没有使用:
extern "C" {
#include"f.h"
}
因为C语言和cpp的编译过程中的函数名称修饰规则是不一样的。当cpp引用C库的时候必须告诉编译器,哪些函数是C函数,编译器会按照C的名称修饰去函数库中搜索函数,这样才能正常链接。
你通常不需要手动使用ld 命令。直接使用gcc 命令就可以了
gcc -oa.out f.a g.o
就可以了。它会自动调用ld 命令。

⑨ gcc编译时的-g参数是什么意思

生成调试信息。GNU 调试器可利用该信息。

热点内容
高级语言都要编译解析型语言 发布:2025-02-13 15:06:32 浏览:304
openwrt源码下载 发布:2025-02-13 15:01:59 浏览:644
linux删除一个目录 发布:2025-02-13 15:00:29 浏览:539
蚂蚁存储 发布:2025-02-13 15:00:25 浏览:918
脚本师传奇 发布:2025-02-13 14:45:48 浏览:481
我的世界lce服务器剪辑 发布:2025-02-13 14:40:50 浏览:625
phpsftp上传 发布:2025-02-13 14:35:43 浏览:274
c学生管理系统数据库 发布:2025-02-13 14:21:41 浏览:123
传奇添加会员脚本 发布:2025-02-13 14:20:50 浏览:206
微信开发平台源码 发布:2025-02-13 14:14:20 浏览:614