.c
当我使用该cc
命令编译文件时,它会创建一个a.out
可执行文件。我注意到它a.out
在我的当前目录中创建了文件。有没有办法让文件与我碰巧在系统上a.out
的文件在同一目录中创建?.c
例如,如果我当前的路径是~/desktop
并且我输入命令:
cc path/to/my/file/example.c
它在目录中创建a.out
文件~/desktop
。我希望它在其中创建a.out
文件path/to/my/file/a.out
.c
当我使用该cc
命令编译文件时,它会创建一个a.out
可执行文件。我注意到它a.out
在我的当前目录中创建了文件。有没有办法让文件与我碰巧在系统上a.out
的文件在同一目录中创建?.c
例如,如果我当前的路径是~/desktop
并且我输入命令:
cc path/to/my/file/example.c
它在目录中创建a.out
文件~/desktop
。我希望它在其中创建a.out
文件path/to/my/file/a.out
每次调用 cc 时都必须使用 -o 开关:
cc -o path/to/my/file/a.out path/to/my/file/example.c
或者你可以像这样制作一个包装脚本:
mycc
#!/bin/bash
dirname=`dirname "$1"`
#enquoted both input and output filenames to make it work with files that include spaces in their names.
cmd="cc -o \"$dirname/a.out\" \"$1\""
eval $cmd
然后你可以调用
./mycc path/to/my/file/example.c
它会反过来调用
cc -o "path/to/my/file/a.out" path/to/my/file/example.c
当然,您可以将 mycc 放在 $PATH 中,这样您就可以这样称呼它:
mycc path/to/my/file/example.c
您可以给出“-o”标志来定义输出文件。例如:
cc path/to/my/file/example.c -o path/to/my/file/a.out
是的,与-o
.
cc path/to/my/file/example.c -o path/to/my/file/a.out
它可能不是您想要的,但您可以使用-o
siwtch 轻松重定向编译的输出,如下所示:
cc -o /a/dir/output b/dir/input.c
我不知道,如何归档,你想要什么(自动替换),但我想你可以用这样的 bash 来做到这一点:(我的脚本很差,未经测试,可能是错误的):
i = "a/path/to/a/file.c" cc -o ${i%.c} $i
这应该将 i 中指定的文件编译为同一目录中的输出文件,但删除 .c 后缀。