• gcc / g++ 编译选项


    g++ -Wall -m64 -W -O2 a.cpp b.cpp -o a

    用下面的命令编译,生成libtriangle.so  先生成动态库

    g++ -g -fpic -shared -o libtriangle.so triangle.cpp polygon.cpp

    g++  -Wall -m64 -W -O2 -fpic -shared -o Gy8583ISO.so Gy8583ISO.cpp   //-g

    http://hi.baidu.com/ablenavy/item/b498901c6826bbf587ad4e33

     

    -c

      生成obj的.o文件,不生成可执行文件

      只预处理,编译和汇编,不链接。

      例子:

      gcc -c hello.cpp

      他将生成.o的obj文件

      -g

      编译时,产生调试信息可以用于gdb

      -o

      生成可执行文件,指定可执行文件名。如果没有,默认为a.out

      例子:

      g++ -o hello hello.cpp

      -Wall

      显示所有的Warning

      -pg

      可以生成gprof调试的文件

      -Dmacro

      相当于C语言中的#define macro

      -Dmacro=defn

      相当于C语言中的#define macro=defn

      -Umacro

      相当于C语言中的#undef macro

      -undef

      取消对任何非标准宏的定义

      -IDir

      增加编译时搜寻头文件的路径

      -llibrary

      指定编译的时候使用的库

      例子:

      gcc -lcurses hello.c

      使用ncurses库编译程序

      -Ldir

      增加编译时搜索库的路径。

      -M

      生成文件关联的信息。包含目标文件所依赖的所有源代码。

      例子:

      g++ -M hello.cpp

      -MM

      和上面的那个类似,但是忽略由#include<file>造成的依赖关系。

      -Olevel

      编译器优化级别。-O0表示没有优化,-O3优化级别最高

      -static

      此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行.

      -shared

      此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库。

    http://doc.chinaunix.net/linux/201004/485583.shtml

  • 相关阅读:
    股指期货风声水起 股市"蛇人″给我们启示
    Goals of Distributed Application Design
    火箭股票,火箭发射(07.4.12)
    SQLAlchemy完全入门
    巧用异或
    FastAPI启用HTTPS
    错误记录:Can't connect to MySQL server on xxx
    MySQL常用命令
    就是想写点什么
    Android关于Activity class {package/class} does not exist
  • 原文地址:https://www.cnblogs.com/draeag/p/3259891.html
Copyright © 2020-2023  润新知