分页: 1 / 1
如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-15 16:42
由 kongpo
如题,在终端输入gcc filename.c 的时候实际执行的是gcc filename.c -o filename
说穿了就是生成的可执行文件名与原文件名保持一致
尝试过通过alias和$1实现失败
不知道从何下手
求解帮忙

Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-15 16:48
由 会fly的青蛙
修改gcc的源代码中处理命令行参数的部分,重新编译怎么样?嘿嘿,其实我不懂. 我一直用make,倒是没想过这个问题
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-15 16:54
由 会fly的青蛙
要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-15 16:54
由 Ubuntu与Linux
可以用脚本,
我的是
gnome-terminal -x bash -c "gcc -g -o ${@%.c**}.out ${@};read"
(网上搜索后编辑的)
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-15 17:40
由 tsunli
make filename
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-15 18:38
由 kongpo
会fly的青蛙 写了:要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc
bash怎么写,我写完运行之后都是乱码= =,能不能写个给我看下,bash我不是很懂

Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-15 18:44
由 kongpo
Ubuntu与Linux 写了:可以用脚本,
我的是
gnome-terminal -x bash -c "gcc -g -o ${@%.c**}.out ${@};read"
(网上搜索后编辑的)
不是很明白,能解释下吗?我的是macos
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-16 12:01
由 会fly的青蛙
kongpo 写了:会fly的青蛙 写了:要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc
bash怎么写,我写完运行之后都是乱码= =,能不能写个给我看下,bash我不是很懂

其实我对 bash也不懂,你看看我写的这个脚本,perl
#!/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 之前的目录中
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2010-11-23 18:37
由 tusooa
代码: 全选
gcc()
{
if [[ $# == 1 && $1 == *.c ]] ; then
command gcc -o "${1%.c}" "$1"
else
command gcc "$@"
fi
}
Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
发表于 : 2011-01-29 21:43
由 ywgx
kongpo 写了:如题,在终端输入gcc filename.c 的时候实际执行的是gcc filename.c -o filename
说穿了就是生成的可执行文件名与原文件名保持一致
尝试过通过alias和$1实现失败
不知道从何下手
求解帮忙

auto.vim可以完美解决你的问题
http://www.vim.org/scripts/script.php?script_id=3341