用gcc编译.c
我在编译一个有main.c和很多.c和.h文件的程序。 有什么办法来编译和链接没有通过所有.c文件在海湾合作委员会的命令 像用gcc编译.c
gcc main.c file.c file2.c -o main
如果您询问命令行,可以使用通配符将所有.c文件指定为@Man of One Way建议的文件。但是一般来说,任何平凡大小的C应用程序都是使用“makefile”构建的,它们对非常有帮助。
您可能需要阅读教程,如http://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/makefile.html
“使”是构建C应用程序的工具。以下是你好世界版本。
$ cat main.c
#include <stdio.h>
int main (char *argv[], int argc) {
printf("Hello World\n");
return 0;
}
$ make main
cc main.c -o main
$ ./main
Hello World
编辑在尊重沙巴兹·评论: 原来的问题正在努力简化命令行的GCC。程序员的正确方向是了解make。由于make有一点点的学习曲线,我想提供一些简单的垫脚石来做一些有用的事情。通过这种方式开始,您不需要make文件。只需键入'make programname',如上所示。使用它的默认规则和关联的varabiles。 $(CC)-c $(CFLAGS)$(CPPFLAGS)聪明的程序员可以通过设置众所周知的变量建立在此。
从这里可以用一个makefile鼓捣。在垫脚石的精神,考虑这个繁琐的makefile
$ cat makefile
SRCS = main.c
OBJ = ${SRCS:.c=.o}
CC=gcc
main: ${OBJ}
$ make
gcc main.o -o main
通过设置众所周知make变量CC来控制使用哪种编译器。 OBJ是从源文件列表中计算出来的。中产阶级的目标是通向规则之路。
不管怎么说,所以我希望这个职位和其他答案获得方式有原来的提问。
问候, -JK
hello world版本不应该关注'Makefile'的内容而不是程序? – Shahbaz 2012-07-08 21:54:54
前面已经说了,提出的是去 了解你需要在每一点上
除了刚才什么是最好的方式,它也使用一些标志,这将帮助是非常重要的你出去而编码:
-Wall -> sets all warning flags
-g, -ggdb -> generates debug code
-ansi, -std=c99
一个真正好的书介绍如何使用化妆是, http://shop.oreilly.com/product/9780937175903.do
学习如何编写'Makefile',你不会后悔的。 – Shahbaz 2012-07-08 21:54:07