GCC选项之-M】的更多相关文章

摘自http://www.tuicool.com/articles/EvIzUn gcc选项-g与-rdynamic的异同 gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如 -ggdb .-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内. 相比-g选项, -rdynamic 却是一个 连接选项 ,它…
-g: Debugging Option. 提供给GDB的debugging信息的选项: -fno-omit-frame-pointer: Optimization Option: -Wstrict-prototypes: Warning Option. 当Linux内核在体系结构差异较大的平台移植时,会产生与数据类型相关的问题,在编译内核事,使用该选项,可以避免很多错误产生.(C and Object-C Only Warning Option) -Wundef: Warning Option…
转自:http://www.tuicool.com/articles/EvIzUn gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如 -ggdb .-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内.  相比-g选项, -rdynamic 却是一个 连接选项 ,它将指示连接器把所有符号(而不仅仅只是程…
<Linux GCC常用命令> Makefile有三个非常有用的变量.分别是$@,$^,$<代表的意义分别是: $@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件.  同时使用动态/静态库 GCC默认的链接库形式是动态的:如果要采用静态连接需要添加static参数,但是会导致整个GCC连接都是用静态连接方式. 这是可以使用-Wl,-Bstatic XXX -Wl,-Bdynamic XXX来指定需要静态连接和动态链接的库. 比如:-Wl,-Bstatic -lsqli…
-Wl选项告诉编译器将后面的参数传递给链接器. -soname则指定了动态库的soname(简单共享名,Short for shared object name) soname的关键功能是它提供了兼容性的标准: 当要升级系统中的一个库时,并且新库的soname和老库的soname一样,用旧库链接生成的程序使用新库依然能正常运行.这个特性使得在Linux下,升级使得共享库的程序和定位错误变得十分容易. 在Linux中,应用程序通过使用soname,来指定所希望库的版本,库作者可以通过保留或改变so…
大多数的C/C++编译器都支持一个“-M”的选项,即自动找寻源文件中包含的头文件.举个例子,比如mian.c包含有如下头文件. #include <stdio.h> #include "log.h" 用gcc -M main.c就可以输入其包含的所有头文件.如下图所示. [root@bogon CodeNotes]# gcc -M main.c main.o: main.c /usr/include/stdio.h /usr/include/features.h \ /us…
GCC 1 Section: GNU Tools (1) Updated: 2003/12/05 Sponsor: GCC Casino Winning Content NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filename ]... 警告(WARNING) 本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不…
gcc –E hello.c –o hello.i   使用gcc的选项"-E" 让gcc在预处理结束后停止编译过程. gcc –S hello.i –o hello.s   "-S"选项只进行编译而不进行汇编,生成汇编代码. [root@localhost gcc] gcc  hello1.c  –I  /root/workplace/gcc/  -o  hello1…
-I:指定第一个寻找头文件的目录 -L:指定第一个寻找库文件的目录 -l:表示在库文件目录中寻找指定的动态库文件 例: gcc –o hello hello.c –I /home/hello/include –L /home/hello/lib –lworld /home/hello/include 作为第一个头文件的寻找目录.头文件寻找顺序:/home/hello/include –> /usr/include –> usr/local/include /home/hello/lib 作为第…
-L 编译时查找动态链接库的路径 -lxxx(小写)  e.g -lcudart   = link libcudart.so  , -I(大写) 头文件的路径 -rpath (-R), 编译时指定链接动态库的路径 可以用ldd <your_execute>看看是不有 ‘not found’在你链接的库后面, 解决方法是通过-Wl,rpath=<your_lib_dir>,使得execute记住链接库的位置 LD_LIBRARY_PATH  程序运行时查找动态库的路径 C_INCLU…