当前位置: 技术问答>HTML标签参考手册
iis7站长之家
gcc -g 通不过 -c却通过 原因?
来源: 互联网 发布时间:2016-08-16
本文导语: /* 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_H void mytool1_print(char *print_str); #endif /* mytool1.c */ #include "mytool1.h" void ...
/* 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_H
void mytool1_print(char *print_str);
#endif
/* mytool1.c */
#include "mytool1.h"
void mytool1_print(char *print_str)
{
printf("This is mytool1 print %sn",print_str);
}
/* mytool2.h */
#ifndef _MYTOOL_2_H
#define _MYTOOL_2_H
void mytool2_print(char *print_str);
#endif
/* mytool2.c */
#include "mytool2.h"
void mytool2_print(char *print_str)
{
printf("This is mytool2 print %sn",print_str);
}
Makefile
main: mytool1.o mytool2.o main.o
gcc -o main main.o mytool1.o mytool2.o
main.o: main.c mytool1.h mytool2.h
gcc -g main.c
mytool1.o: mytool1.c mytool1.h
gcc -g mytool1.c
mytool2.o: mytool2.c mytool2.h
gcc -g mytool2.c
clean:
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 ..........
gcc -c main.c
为什么
man gcc ..........
|
-g 仅仅是增加调试信息 ,没有约束生成的作用
默认就会执行到链接,生成可执行elf
-c 会停在汇编这一步,不进行链接
默认就会执行到链接,生成可执行elf
-c 会停在汇编这一步,不进行链接
|
编译过程中 貌似和-g木有什么关系