g++ -Wall -m64 -W -O2 a.cpp b.cpp -o ahtml
用下面的命令编译,生成libtriangle.so 先生成动态库linux
g++ -g -fpic -shared -o libtriangle.so triangle.cpp polygon.cppweb
g++ -Wall -m64 -W -O2 -fpic -shared -o Gy8583ISO.so Gy8583ISO.cpp //-g优化
http://hi.baidu.com/ablenavy/item/b498901c6826bbf587ad4e33spa
-c.net
生成obj的.o文件,不生成可执行文件unix
只预处理,编译和汇编,不连接。调试
例子:orm
gcc -c hello.cpphtm
他将生成.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
此选项将尽可能使用动态库,因此生成文件比较小,可是须要系统由动态库。