当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-15 16:42 

注册: 2010-11-15 16:35
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
如题,在终端输入gcc filename.c 的时候实际执行的是gcc filename.c -o filename

说穿了就是生成的可执行文件名与原文件名保持一致

尝试过通过alias和$1实现失败

不知道从何下手

求解帮忙 :em06


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-15 16:48 
头像

注册: 2010-10-13 13:15
帖子: 66
送出感谢: 0 次
接收感谢: 0 次
修改gcc的源代码中处理命令行参数的部分,重新编译怎么样?嘿嘿,其实我不懂. 我一直用make,倒是没想过这个问题


_________________
没得玩了


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-15 16:54 
头像

注册: 2010-10-13 13:15
帖子: 66
送出感谢: 0 次
接收感谢: 0 次
要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc


_________________
没得玩了


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-15 16:54 
头像

注册: 2010-06-09 19:57
帖子: 1211
送出感谢: 2
接收感谢: 9
可以用脚本,
我的是
gnome-terminal -x bash -c "gcc -g -o ${@%.c**}.out ${@};read"
(网上搜索后编辑的)


_________________
听歌


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-15 17:40 

注册: 2005-05-25 0:10
帖子: 66
送出感谢: 0 次
接收感谢: 1
make filename


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-15 18:38 

注册: 2010-11-15 16:35
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
会fly的青蛙 写道:
要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc


bash怎么写,我写完运行之后都是乱码= =,能不能写个给我看下,bash我不是很懂 :em01


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-15 18:44 

注册: 2010-11-15 16:35
帖子: 3
送出感谢: 0 次
接收感谢: 0 次
Ubuntu与Linux 写道:
可以用脚本,
我的是
gnome-terminal -x bash -c "gcc -g -o ${@%.c**}.out ${@};read"
(网上搜索后编辑的)


不是很明白,能解释下吗?我的是macos


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-16 12:01 
头像

注册: 2010-10-13 13:15
帖子: 66
送出感谢: 0 次
接收感谢: 0 次
kongpo 写道:
会fly的青蛙 写道:
要不你写一个脚本,并命名为gcc,然后在脚本里处理好你说的命令行参数的问题,然后调用真正的gcc,把这个脚本所在目录加入路径并置于gcc所在目录即可使gcc命令实际运行这个冒牌脚本而不是真正的gcc


bash怎么写,我写完运行之后都是乱码= =,能不能写个给我看下,bash我不是很懂 :em01

其实我对 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 之前的目录中


_________________
没得玩了


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2010-11-23 18:37 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
代码:
gcc()
{
    if [[ $# == 1 && $1 == *.c ]] ; then
        command gcc -o "${1%.c}" "$1"
    else
        command gcc "$@"
    fi
}


_________________
代码:
] ls -ld //


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 如何让终端输入gcc filename.c时,实际执行gcc filename.c -o filename
帖子发表于 : 2011-01-29 21:43 

注册: 2010-12-03 14:34
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
kongpo 写道:
如题,在终端输入gcc filename.c 的时候实际执行的是gcc filename.c -o filename

说穿了就是生成的可执行文件名与原文件名保持一致

尝试过通过alias和$1实现失败

不知道从何下手

求解帮忙 :em06


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


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译