Чтобы запустить мою программу командной строки Unix является «p2 -s input.txt»Makefile командной строки C аргумент
Обычно (без Makefile), чтобы проверить, что флаг == -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" '. – MikeCAT
Ваш вопрос непонятен. Почему makefile влияет на то, как вы пишете код для синтаксического анализа командной строки программы? Файл makefile поможет вам создать программу. Затем вы запускаете программу точно так, как обычно. – kaylum
Спасибо @mikeCAT. Я думал, что попробовал это раньше, и я подумал, что это дало мне ошибку сравнения указателя и целого числа. Спасибо, я ценю помощь! – John