Определение имени исполняемого файла C

Когда мы компилируем программу на C, вывод сохраняется в a.out. Как мы можем перенаправить скомпилированный вывод в другой файл?

    Большинство компиляторов C предоставляют опцию -o для этого, например:

     gcc -o gentext gentext.c cc -o mainprog -Llib -lmymath firstbit.c secondbit.o xlc -o coredump coredump.c 

    -ofilename будет делать filename вместо a.out .

    Согласно руководству:

     -o  Place the output into  

    В Unix, где C происходит от C, программы C обычно скомпилируются по модулю, а затем скомпилированные модули связаны с исполняемым файлом. Для проекта, состоящего из модhive foo.c и bar.c , команды будут такими:

     cc -c foo.c cc -c bar.c cc -o myprog foo.o bar.o 

    (С -c выходное имя файла становится исходным файлом с суффиксом, замененным на .o.)

    Это позволяет также перекомпилировать только те модули, которые были изменены, что может быть большой экономией времени для больших программ, но также может стать довольно сложным. (Эта часть обычно автоматизирована с использованием make .)

    Для одномодульной программы вначале не компилируется файл .o, а затем привязывается, поэтому достаточно одной команды:

     cc -o foo foo.c 

    Для одномодульных программ принято вызывать результирующую исполняемую программу так же, как исходный файл C без суффикса .c. Для многомодульных программ нет жесткого пользовательского права на то, вызывается ли имя после файла с главной функцией или нет, поэтому вы можете изобретать все, что поражает ваше воображение.

    Компилировать, используя:

     cc -o   

    Выполнить, используя:

     ./