如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
-
- 帖子: 3
- 注册时间: 2010-11-15 16:35
如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
如题,在终端输入gcc filename.c 的时候实际执行的是gcc filename.c -o filename
说穿了就是生成的可执行文件名与原文件名保持一致
尝试过通过alias和$1实现失败
不知道从何下手
求解帮忙
说穿了就是生成的可执行文件名与原文件名保持一致
尝试过通过alias和$1实现失败
不知道从何下手
求解帮忙
- 会fly的青蛙
- 帖子: 66
- 注册时间: 2010-10-13 13:15
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
修改gcc的源代码中处理命令行参数的部分,重新编译怎么样?嘿嘿,其实我不懂. 我一直用make,倒是没想过这个问题
没得玩了
- 会fly的青蛙
- 帖子: 66
- 注册时间: 2010-10-13 13:15
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc
没得玩了
- Ubuntu与Linux
- 帖子: 1211
- 注册时间: 2010-06-09 19:57
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
可以用脚本,
我的是
gnome-terminal -x bash -c "gcc -g -o ${@%.c**}.out ${@};read"
(网上搜索后编辑的)
我的是
gnome-terminal -x bash -c "gcc -g -o ${@%.c**}.out ${@};read"
(网上搜索后编辑的)
-
- 帖子: 66
- 注册时间: 2005-05-25 0:10
-
- 帖子: 3
- 注册时间: 2010-11-15 16:35
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
bash怎么写,我写完运行之后都是乱码= =,能不能写个给我看下,bash我不是很懂会fly的青蛙 写了:要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc
-
- 帖子: 3
- 注册时间: 2010-11-15 16:35
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
不是很明白,能解释下吗?我的是macosUbuntu与Linux 写了:可以用脚本,
我的是
gnome-terminal -x bash -c "gcc -g -o ${@%.c**}.out ${@};read"
(网上搜索后编辑的)
- 会fly的青蛙
- 帖子: 66
- 注册时间: 2010-10-13 13:15
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
其实我对 bash也不懂,你看看我写的这个脚本,perlkongpo 写了:bash怎么写,我写完运行之后都是乱码= =,能不能写个给我看下,bash我不是很懂会fly的青蛙 写了:要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc
#!/usr/bin/perl
use warnings;
use strict;
my $orgi_args=join (' ',@ARGV);
my $objname;
foreach (@ARGV)
{
if(m/(.*)\.c/)
{
$objname=$1;
}
}
`/usr/bin/gcc -o $objname $orgi_args`;
它的作用是把你输入的参数中最后一个 .c文件的名字作为输出目标文件名,然后 调用 /usr/bin/gcc 。
使用方法是把上面的内容拷贝下来,复制到一个名为 gcc的文件中并修改其文件权限为可执行 。然后把它所在的目录加入path ,并置于 /usr/bin 之前 . 或者把它复制到一个 已经在 PATH中并且位于 /usr/bin 之前的目录中
没得玩了
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
代码: 全选
gcc()
{
if [[ $# == 1 && $1 == *.c ]] ; then
command gcc -o "${1%.c}" "$1"
else
command gcc "$@"
fi
}
代码: 全选
] ls -ld //
-
- 帖子: 2
- 注册时间: 2010-12-03 14:34
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
auto.vim可以完美解决你的问题kongpo 写了:如题,在终端输入gcc filename.c 的时候实际执行的是gcc filename.c -o filename
说穿了就是生成的可执行文件名与原文件名保持一致
尝试过通过alias和$1实现失败
不知道从何下手
求解帮忙
http://www.vim.org/scripts/script.php?script_id=3341