我在 ubuntu 和 debian 上使用 C 编写代码,每次编写程序时我都厌倦了将编译后的文件从 a.out 更改为另一个名称,所以我想编写一个这样的小脚本:
cc file.c
mv a.out file.out
我的问题是我不知道如何将“文件”名称更改为我想要的其他名称。我不知道在 ubuntu 中是否可以有参数。
感谢您的回复!
答案1
是的,你可以有编号位置参数例如,在 bash(或其他 Bourne 衍生的)shell 脚本中
#!/bin/bash
/usr/bin/cc -o "$1" "$1.c"
也可以称为
./myscript file
编译并链接file.c
至file
——例如参阅Positional Parameters
bash 手册页的部分(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!
答案2
您不必这样做。-o
编译器的标志已经允许指定输出名称。
笔记:在 Linux 上,cc
是指向 的符号链接gcc
,它是 GNU C 编译器
例子:
$ 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$
答案3
cc -o file.out
,来自man cc
,是简单的答案。对于更复杂的软件,我们使用make
(参见,在下载的源中man make
查找)Makefile