zoukankan      html  css  js  c++  java
  • gcc/g++ 命令的常用选项

    gcc/g++ 命令的常用选项
    使用g++编译CPP文件如果用gcc编译C++源文件时,加以下选项:-lstdc++,否则使用了C++操作的文件编译会出错。假如在程序中用到new delete操作,而不加此选项进行编译会出现以下错误信息:zch07eha01:/home/mrbt48/cpp> gcc -o RG RandomTest.cpp
    /tmp/cciMHHyb.o(.text+0x2b): In function `main':
    : undefined reference to `operator new(unsigned int)'
    /tmp/cciMHHyb.o(.text+0x51): In function `main':
    : undefined reference to `operator delete(void*)'
    /tmp/cciMHHyb.o(.text+0x5e): In function `main':
    : undefined reference to `operator new[](unsigned int)'
    /tmp/cciMHHyb.o(.text+0x9f): In function `main':
    : undefined reference to `RandomGenerator::getRandom(int*, int)'
    /tmp/cciMHHyb.o(.text+0x10f): In function `main':
    : undefined reference to `operator delete[](void*)'
    /tmp/cciMHHyb.o(.gnu.linkonce.t._ZNSt8auto_ptrI15RandomGeneratorED1Ev+0xf): In function `std::auto_ptr<RandomGenerator>::~auto_ptr()':
    : undefined reference to `operator delete(void*)'
    /tmp/cciMHHyb.o(.gnu.linkonce.t._ZNSt8auto_ptrI15RandomGeneratorE5resetEPS0_+0x19): In function `std::auto_ptr<RandomGenerator>::reset(RandomGenerator*)':
    : undefined reference to `operator delete(void*)'
    /tmp/cciMHHyb.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
    collect2: ld returned 1 exit status加入 -lstdc++选项后,成功通过:zch07eha01:/home/mrbt48/cpp> gcc -lstdc++ -o RG RandomTest.cpp

    gcc/g++ 命令的常用选项格式(选项  解释)

    -o FILE           指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.

    -c           只编译生成目标文件,不链接

    -m486        针对 486 进行代码优化。

    -O0          不进行优化处理。

    -O 或 -O1  优化生成代码。

    -O2          进一步优化。

    -O3 比 -O2 更进一步优化,包括 inline 函数。

    -w           关闭所有警告,建议不要使用此项

    -Wall        允许发出gcc能提供的所有有用的警告,也可以用-W(warning)来标记指定的警告

    -werror      把所有警告转换为错误,以在警告发生时中止编译过程                          

    -MM          输出一个make兼容的相关列表

    -v           显示在编译过程的每一步中用到的命令

    -E           只运行 C 预编译器。

    -shared      生成共享目标文件。通常用在建立共享库时。

    -static      链接静态库,即执行静态链接

    -lFOO        链接名为libFOO的函数库

    -g           在可执行程序中包含标准调试信息

    -ggdb        在可执行程序中包含只有GNU debugger才能使别的达两条是信息

    -O           优化编译过的代码

    -ON          指定代码优化的级别为N,o<=N<=3

    -ansi        支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与该标准有冲突的部分(但这一选项并不能保证生成ANSI兼容的代码) 这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词。

    -pedantic  允许发出ANSI/ISO C标准所列出的所有警告

    -errors      允许发出ANSI/ISO C标准所列出的所有错误

    -traditional           支持Kernighan & Ritchie C语法(如用旧式语法定义函数);如果不知道这个选项的含义,也没有关系
    -IDIRECTORY      指定额外的头文件搜索路径DIRECTORY。

    -LDIRECTORY      指定额外的函数库搜索路径DIRECTORY。

    -DFOO=BAR 在命令行定义预处理宏FOO,其值为BAR

    -IDIRNAME 将DIRNAME加入到头文件的搜索目录列表中

    -LDIRNAME 将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库

    -DMACRO      以字符串“1”定义 MACRO 宏。

    -DMACRO=DEFN     以字符串“DEFN”定义 MACRO 宏。

    -UMACRO      取消对 MACRO 宏的定义。

  • 相关阅读:
    找出优先要作的工作
    我要作技术研发了
    确定配色方案
    今天公司搬家
    要作界面原型了
    使用自已的命名空间
    进行审核了
    那里有皮肤软件工开发包的源码???
    发葡萄
    作业务规则挺难
  • 原文地址:https://www.cnblogs.com/skyofbitbit/p/3676538.html
Copyright © 2011-2022 走看看