LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1287|回复: 15

这个要怎么实现?谢谢

[复制链接]
发表于 2004-7-25 19:37:07 | 显示全部楼层 |阅读模式
执行make以后直接运行make生成的可执行文件,
假设可执行文件不需要参数.
发表于 2004-7-25 19:40:45 | 显示全部楼层
不懂你的意思究竟是要实现什么?
你说的是make在编译源码目录方面的应用吗?
 楼主| 发表于 2004-7-26 09:22:52 | 显示全部楼层
是的.

只要输入make命令,就可以出来一个可执行文件,.(这个可执行文件名不定)
发表于 2004-7-26 09:29:38 | 显示全部楼层
make正是用来简化编译过程的,最终当然生成可执行文件拉。

至于你说make之后自动运行一个可执行文件,这样有意义吗???可执行文件大多要链接共享库,这样就必须用make install来分布其部件,同时有必要的话还要update ld.conf呢,换言之,运行这类生成的可执行文件必须要在make install之后。难道如下命令你认为有意义否?

  1. make install && command
复制代码
 楼主| 发表于 2004-7-26 10:57:07 | 显示全部楼层
谢谢!可能是没有多大意义.
但是对我来说肯定是有意义的哦.!

现在我只考虑简单的,直接make以后生成command,(问题是这个command名是不定)

最好有类似管道,重定向这样的功能的,不知道有没有?
发表于 2004-7-26 12:00:02 | 显示全部楼层
你的想法有逻辑性矛盾噢。Makefile本身只负责编译以及安装事项,它不包含源码目录最终生成的各类可执行文件的相互关系(既然不知道相互关系,谈何执行,比如说pppoe源码目录生成pppd,pppoe,pon,poff以及各类配置脚本,你知道要执行什么吗?前提你必须得熟悉它)。

1.既然你要make一个源码目录,前提是你必须通过这个文档熟悉这个软件的构成,否则谈何编译?既然你熟悉了这个软件,那么必然清楚其command名。即使是软件包管理系统,它也是把软件的安装建基于事先已经做好的配置文件(如apt-get依赖DEBIAN配置目录,emerge依赖ebuild配置文件)。

2.再者,如上所述,软件的执行并不是执行一个可执行文件这么简单,它还涉及到共享库的调用,也就是说必须用make执行MAKEFILE的install段(make install)来分布部件以配置软件执行的环境,仅仅make只能在源码目录下生成可执行文件以及共享库,还未能直接运行。

不要钻牛角尖!如果要通过实例来学习shell,那么这个实例必须得本身不矛盾,而且要有意义(适应Linux平台)。
 楼主| 发表于 2004-7-26 13:34:51 | 显示全部楼层
谢谢你版主!

申明一点:这个绝对有意义!
可能我提的问题没有意义,但是这只是为了简单起见.
发表于 2004-7-26 14:21:52 | 显示全部楼层
那还请这位兄弟说说它的意义,在下洗耳恭听。
发表于 2004-7-26 15:41:14 | 显示全部楼层
楼主在顶楼说的好像是这样嘛, Makefile的内容:


  1. run: command_name
  2.         ./command_name

  3. command_name: file1.o file2.o ...
  4.         gcc -o $@ $^

  5. ...

复制代码


这样,当运行make, 就会生成名为command_name的程序并执行
是不是这个意思?
发表于 2004-7-26 15:46:27 | 显示全部楼层
楼主所说的可执行文件的名字是不确定的,而兄弟在执行前已经知道名字了(因为你自行修改了Makefile,那必然对该软件熟悉),在这个程度上看,其实也正顺应了我对楼主想法的修正。

当然,用testsuite来测试软件的编译质量(make test)就是在install前
执行软件,但那是另外一回事。

敢问兄弟的Makefile满足我的说法第二点吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表