首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

gcc -g 通不过 -c却通过 原因?该怎么解决

2012-04-07 
gcc -g 通不过 -c却通过 原因?C/C++ code/* main.c */#include mytool1.h#include mytool2.hint main(

gcc -g 通不过 -c却通过 原因?

C/C++ code
/* main.c */#include "mytool1.h"#include "mytool2.h"int main(int argc,char **argv){mytool1_print("hello");mytool2_print("hello");}/* mytool1.h */#ifndef _MYTOOL_1_H#define _MYTOOL_1_Hvoid mytool1_print(char *print_str);#endif/* mytool1.c */#include "mytool1.h"void mytool1_print(char *print_str){printf("This is mytool1 print %s\n",print_str);}/* mytool2.h */#ifndef _MYTOOL_2_H#define _MYTOOL_2_Hvoid mytool2_print(char *print_str);#endif/* mytool2.c */#include "mytool2.h"void mytool2_print(char *print_str){printf("This is mytool2 print %s\n",print_str);}

Makefile
C/C++ code
main: mytool1.o mytool2.o main.o    gcc -o main main.o mytool1.o mytool2.omain.o: main.c mytool1.h mytool2.h    gcc -g main.cmytool1.o: mytool1.c mytool1.h    gcc -g mytool1.cmytool2.o: mytool2.c mytool2.h    gcc -g mytool2.cclean:     rm -f mytool1.o mytool2.o main.o

当把gcc -g 换成 -c就ok了 。为什么?


[解决办法]
gcc -o main main.o mytool.o -g

gcc -c main.c

为什么

man gcc ..........
[解决办法]
-g 仅仅是增加调试信息 ,没有约束生成的作用
默认就会执行到链接,生成可执行elf

-c 会停在汇编这一步,不进行链接
[解决办法]
编译过程中 貌似和-g木有什么关系

热点排行