Я кодирую на C в ubuntu и debian, и мне надоело менять скомпилированный файл с a.out на другое имя. каждый раз, когда я создаю программу, я хочу написать небольшой сценарий вроде этого:
cc file.c
mv a.out file.out
Моя проблема в том, что я не знаю, как изменить имя «файл» на любое другое, которое я хочу. Я не знаю, можно ли иметь параметры в ubuntu.
Спасибо за ответы!
Вы не должны делать этого. -o
флаг к компилятору уже позволяет указывать выходное имя.
Примечание : на Linux, cc
символьная ссылка на gcc
, который является компилятором C GNU
Пример:
$ cat hello_world.c
#include <stdio.h>
int main()
{
printf("%s","Hello World");
return 0;
}
$ gcc hello_world.c -o MyProg
$ ./MyProg
Hello World
<час> Что касается самих сценариев, можно использовать параметры командной строки с $N
, где N является целым числом
$ cat compile_stuff.sh
#!/bin/bash
if gcc "$1"
then
mv a.out "$2"
fi
$ ./compile_stuff.sh hello_world.c MyProg
$ ./MyProg
Hello World$
cc -o file.out
, от man cc
, простой ответ. Для более сложного программного обеспечения мы используем make
(см. man make
, ищите Makefile
в загруженных источниках)
Да можно было пронумеровать позиционные параметры в ударе (или другой Полученный из границы) сценарий оболочки, например
#!/bin/bash
/usr/bin/cc -o "$1" "$1.c"
который можно назвать как
./myscript file
скомпилировать и связаться file.c
кому: file
- посмотрите, например, Positional Parameters
раздел страницы руководства удара (man bash
).
Однако, если Вы имеете make
установленный, затем необходимо просто смочь записать make file
скомпилировать и связаться file.c
к исполняемому файлу file
использование правил по умолчанию.
Например, данный
$ ls
hello.c subdir1 subdir2
где
$ cat hello.c
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}
затем
$ make hello
cc hello.c -o hello
$
$ ./hello
Hello world!