为什么gcc命令不能识别通配符*?c语言新手求解答

命令行输入:
C:\Users\Administrator\Desktop\jni\encrypt>gcc -c *.c
返回错误:
gcc: error: *.c: Invalid argument
gcc: fatal error: no input files
compilation terminated.

补充:windows7环境下,gcc环境变量也已配置好,能编译单个.c文件,但是想用通配符代表编译所有文件就不行,这是为什么?windows命令行是支持*通配符的

是编译器的关系,用mingw-w64.org下载的gcc就支持通配符编译

转译一下 ./* 就可以了

  1. 如果要编译的文件都在同一个目录下,可以用通配符gcc *.c -o 来进行编译。

我们可以把上述的编译过程写进以下一个文本文件中:
Linux下称之为makefile

MyFirst: MyFirst.o hello.o
g++ MyFirst.o hello.o -o MyFirst
Hello.o:Hello.cpp
g++ -c Hello.cpp -o Hello.o
MyFirst.o:MyFirst.cpp
g++ -c MyFirst.cpp -o MyFirst.o
makefile 编写规则:
(1)以“#”开始的行为注释
(2)文件依赖关系为:
target:components
rule
存 盘为MyFirst,在终端输入:make MyFist,程序出现了错误可是所有程序员共同的敌人,在编写程序时我们应该尽量的去避免错误的出现,不过编写的时候再怎么都不可避免的出现这样那样的 错误,对程序 进行必要的调试是一个好主意,那我们怎么来调试程序呢,看下面:
gdb ./文件名 ////////////////在这里我修改下要想下面可以调试,在上面编译的 时候必须加上参数g,g++ -g hello.cpp -o hello
以下为调试状态下的可以用到的命令(可以仅输入单词的输入,如break可简为b),尖括号中为说明
list <显示源代码>
break 行号 <设置断点>
run <运行程序>
continue <继续从断点处执行>
print 变量 <调试时查看变量的值>
del 行号 <删除断点>
step <单步执行,可跟踪到函数内部>
next <单步执行,不可跟踪到函数内部>
quit <退出>
makefile 的编写不是件容易的事情,因为自己写的makefile可能不能在所有的unix/linux类操作系统下通用。因此在很多项目中都用automake.autoconf或者是Cmake等工具