【发布时间】:2016-02-26 04:25:20
【问题描述】:
要运行我的程序,unix 命令行是“p2 -s input.txt”
通常(没有生成文件)检查标志 == -s 我的 unix 输入是 -a.out -s input.txt,而我的 main.c 是:
int main(int argc, char argv[])
{
if(argv[1] == "-s")
{
printf("The flag is -s\n");
}
else
{
printf("The flag is not -s");
}
return 0;
}
现在,当我使用 makefile 编写代码时,我应该更改检查标志的方式吗?还是我需要更改main.c的参数?我的makefile是:
all: p2
p2: main.o functions.o
gcc -o p2 main.o functions.o
main.o: main.c
gcc -c main.c
functions.o: functions.c
gcc -c functions.c
clean:
rm -f *.o core
【问题讨论】:
-
我猜你应该使用
strcmp(argv[1], "-s") == 0而不是argv[1] == "-s"。 -
你的问题不清楚。为什么 makefile 会影响您编写用于解析程序命令行的代码的方式? makefile 可帮助您构建程序。然后你就可以像往常一样运行程序了。
-
谢谢@mikeCAT。我以为我之前尝试过,我认为它给了我一个比较指针和整数的错误。谢谢您的帮助!
-
@kaylum 我一直在比较指针和整数时遇到错误,我认为 makefile 会有问题,因为我对 makefile 还是很陌生
标签: c makefile command-line-arguments