以源代码形式安装是怎么一回事?
不怎么懂,但有点好奇.希望那位能用简单语言解释一下. thank you!
简单点说就是我们一般在Windows下的软件都是以安装程序出现,我们看不到源代码,对如果想修改一些功能都是无能为力的,但用源代码安装就不同了,提供了源代码,你可以自行修改(当然要学会改,乱改不行的),加入自己的东西,然后就是上面说的Make呀,Gcc编译呀这些了-
我的个人理解,不一定对,仅供参考。 -*-*-*-*-*-*- 计算机内部运行时,只有“0”“1”两种信号。通过不同组合来实现不同功能。 一开始有计算机的时候,那帮大侠们就直接010010101这么写程序。 后来觉着这么干很不爽,就用二进制来编写了一些早期编程语言。
后来又逐渐发展到现在的 高级语言。 用高级语言写程序的时候,多数类似于普通的数学表达式,例如 a=1+1; 一些结构的控制,多是英语这种自然语言,例如 if 。。。。 then 。。。。 else 。。。。 (如果。。。。 那么。
。。。 否则。。。。) 如果直接运行这些[数学和英语]编写的源代码,计算机虽然可以“读懂”,但仍旧必须通过一些算法将其转化为 [二进制指令] 才能够运行。 多了一道工序,自然就会使程序的运行变慢了。 而“编译”就是让计算机先将这些[数学和英语]翻译成它自己的语言(二进制),然后保存起来。
以后运行时,就直接按照[二进制]指令去做就可以了。不用翻译“外语”。 (就好象雇翻译,请同声传译可是很贵的~~,文本翻译就便宜了,因为可以慢慢来) -*-*-*-*- 直接安装的程序,通常是有人(比如M$公司)事先将程序编译好了(成为二进制程序,可以直接执行) 编译安装,就是自己拿到了源代码,自己编译为二进制程序。
(拿不到Windows的源代码,大家折腾Linux吧~~) 二者的区别主要在由谁编译的问题上。而“安装”通常只是复制文件、写配置文件的过程。(Windows里通常还有写入注册表的什么什么) 别人编译好的程序,通常会尽可能将所有功能编译进来,因为用户会有各种各样的电脑,各种各样的软件环境。
编译好的程序在运行时检测当前环境,决定使用哪部分功能。 个人编译安装的程序,通常不会考虑其他机器怎样。只把自己的支持编译进来就好。这样编译出的程序更适合这台计算机。 比较明显的是Linux内核。如果编译为支持全部功能,它将很大,运行又慢。
(虽然有些功能可以分离为单独文件(模块),不需要时不加载到内存,可仍然有许多功能必须在内核本体内才可运行。) 自行编译的话,可以只编译自己需要的功能。内核将小巧玲珑。(我有10000Mbit/s的网卡吗?我塞杨的CPU难道会需要PowerPC的指令集?业余无线电?算啦!把这些功能扔掉吧!我这破电脑无论怎么升级也不可能有这些功能吧!) -*- 在Linux中编译安装一个程序,通常有三步:(不一定,有些东西比较麻烦。
比如Linux内核) 。/configure make make install 这种一般是作者准备好了一些自动配置文件,让人可以快速编译、安装。 否则大家就得对照着作者的说明书,一个文件一个文件的去编译(gcc aaa -o aaa 这类东西) 然后还要一个一个把编译好的文件复制到特定位置。
。/configure是一个自动配置脚本,它探测当前系统的一些信息,以决定哪些文件该被编译,哪些不被编译。 configure脚本通常也支持通过参数指定功能,例如--prefix=/xx/x 指定安装目录/xx/x。有些程序还有自己的特殊参数,这需要查看帮助文件或者问问其他人。
make就是自动编译了。它按照刚才configure的测试结果(好象是一个“Makefile”文件),对需要的源代码进行编译。 make install是安装。根据Makefile中的记录,将刚刚make编译好的二进制文件复制到指定位置。
答:你好: 博客播放器音乐无法播放: 为何添加好了音乐链接,首页也有播放器的显示,为什么没有音乐播放。在保证机器声卡及驱动均运行正常的情况下,请参考如下几个原因: ...详情>>
问:快过年了,盗号的很多大家小心,昨天一女的加我,外地的我给删除了,晚上就显示异地登...
答:如果加一下就能被盗号了也太可怕了啊。详情>>
答:有可能你的系统不是正版的,是正版的才可以下载更新.详情>>