makefile的小错误
本帖最后由 kunikida 于 2013-05-13 21:42:31 编辑
getopt:getopt.o
gcc -o getopt getopt.o
getopt.o:main.c
gcc -c main.c
clean:
-rm *.o getopt
运行make命令后,显示如下:
gcc -c main.c
gcc -o getopt getopt.o
gcc:错误:getopt.o没有那个文件或目录
gcc:致命错误,没有输入文件
编译中断
make:***[getopt]错误4
不知道哪里错了,但是我若运行:
gcc -o getopt main.c
就能正确编译了。请教各位兄弟帮忙,谢谢
------解决方案--------------------getopt.o:main.c
gcc -o getopt.o -c main.c
------解决方案--------------------楼上正解 -o -c 都要有。
------解决方案---------------------o -c 参数的作用:
1. -o <file> Place the output into <file>
如:#gcc -o file file.c
-o 告诉编译器将可执行程序放在何处,如果没有指定文件名称,编译器则会把程序放在一个名为a.out的文件里(a.out的含义是 assembler output,即汇编输出)。
2. -c Compile and assemble, but do not link
如:#gcc -c file.c
-c 告诉编译器仅把源代码编译为目标模块(file.o)而跳过汇编和连接的步骤。在使用-c生成目标模块后,就
可以通过-o选项来生成可执行文件。
如:#gcc -o file file1.o file2.o 可以是多个目标模块。