QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1138|回复: 13

为什么要自己编译而不直接发布安装包?

[复制链接]
发表于 2006-4-25 18:13:26 | 显示全部楼层 |阅读模式
是不是为了要更好的兼容自己的系统?

为什么会存在不兼容?因为内核版本不同吗?

不同的内核版本编译出来的程序会有差异吗?

编译器是根据什么去编译?C库?还是内核指令?

编译后的程序是解释运行,还是直接执行指令?

为什么linux不做个类似微软的框架(好像有点像JAVA的虚拟机)?通过框架就可以跨平台(可以跨平台的话跨版本运行应该更不成问题了吧?)运行,像win98一样可以运行.net的软件。

一发问就不可收拾的联想出很多问题,麻烦老大们解答一下吧,谢谢了
发表于 2006-4-25 19:10:19 | 显示全部楼层
更好的兼容自己的系统


各版的精华帖看看先 :D
回复

使用道具 举报

发表于 2006-4-25 23:17:43 | 显示全部楼层
因为win只是ms出的,当然不用考虑什么依赖问题,程序员要开发其上的软件,都听他的
lin有400多版本,能统一吗?,统一的话,我想一定可以成为另一个ms
楼主有编过程序吗,程序一般不是就一个文件而已,
很多要用其它的库,想一想,如果每个软件都把其需要用的包都包含在源码里
那么系统能不大吗?
所以就出现依赖问题了
回复

使用道具 举报

 楼主| 发表于 2006-4-25 23:30:02 | 显示全部楼层
那linux的程序是解释运行的咯?
回复

使用道具 举报

发表于 2006-4-26 02:10:19 | 显示全部楼层
有一部分是,有一部分不是。
回复

使用道具 举报

 楼主| 发表于 2006-4-26 11:12:04 | 显示全部楼层
那如果是解释运行那部分是依赖什么的,JAVA的虚拟机?还是其他的?

linux下的基础语言是C++吗?
回复

使用道具 举报

发表于 2006-4-26 12:43:46 | 显示全部楼层
你在Windows下玩游戏之前为什么非得先装DirectX?
回复

使用道具 举报

发表于 2006-4-26 16:46:02 | 显示全部楼层
linux内核和coreutils是纯c写的,X是c++写的,X上面的东西可以用很多语言写

kernel由cpu解释运行,依赖cpu/内存
其它的看情况
回复

使用道具 举报

 楼主| 发表于 2006-4-27 10:53:26 | 显示全部楼层
[quote:a7a6a1cbfa="mandrakechina"]你在Windows下玩游戏之前为什么非得先装DirectX?[/quote]

因为游戏是基于DIRECTX的API开发的,所以就要把DX的DLL装上

我的意思是想知道LINUX下的解释器有哪些?GTK是解释器吗?好像GTK是服务X的是吧?那文字界面下支持程序解释运行的那些解释器又有那些?
回复

使用道具 举报

发表于 2006-4-27 11:13:36 | 显示全部楼层
[quote:a0422253f6="zxczxc"]那如果是解释运行那部分是依赖什么的,JAVA的虚拟机?还是其他的?

linux下的基础语言是C++吗?[/quote]

楼主是……初学者吧。
先去查查啥叫做解释语言,啥叫做预编译语言。。。
Java居然让你说成了解释语言,我这个汗啊。
你不编译JAVA程序能在JAVA虚拟机上运行?
回复

使用道具 举报

发表于 2006-4-27 11:16:31 | 显示全部楼层
[quote:c49b9f463b="zxczxc"][quote:c49b9f463b="mandrakechina"]你在Windows下玩游戏之前为什么非得先装DirectX?[/quote]

因为游戏是基于DIRECTX的API开发的,所以就要把DX的DLL装上

我的意思是想知道LINUX下的解释器有哪些?GTK是解释器吗?好像GTK是服务X的是吧?那文字界面下支持程序解释运行的那些解释器又有那些?[/quote]

啥叫做解释器?编译器么?
C++ , JAVA ,Python ,Perl , ruby PHP等等都可以在linux上面都可以解释执行。

只有M$的C# VB 不可以(现在linux下面也有一个开源的mono在模拟.net平台。)。
回复

使用道具 举报

发表于 2006-4-27 11:21:31 | 显示全部楼层
自己编译安装的好处在于,可以减少CPU的计算周期,用尽量少的机器码做更多的工作。

CPU对于不同的机器码的运行周期是不一样的。
而GCC针对各种不同的CPU采用了不用的优化,可以产生尽量少的机器代码,这些优化都有局限性,也就是说非可移植。如果你在你的机器上只是做一般的编译……那么你实际上就得不到这种优惠,用别人的安装包和自己编译就是一样的。
回复

使用道具 举报

发表于 2006-4-27 13:15:27 | 显示全部楼层
请教“这种优惠”到底能提升百分之多少的性能?最大能相差多少?

好象看到过谁的帖 :完全自己编译和用debian提供的包没多大差别!

我这个入门水平的想要编译却经常难得编不下去,连缺了什么包都不知道!当然,我也够懒的。

普通Linux用户不是谁都有那么多时间去编译的! (只要过得去能将就一下,牺牲点cpu效率就牺牲点吧)

希望能提供这样的一个帮助场所:例如,我想要最新的可加好友的eva包(debian_etch)就帖出申请, 若某位使用相同发行版(其它发行版有少数不兼容的情况)的高手已编译好且大致能正常使用,不妨帖出来共享。
有时甚至只需要帖出一两个改动过的执行文件就行了,而不用帖整包,在旧版的基础上替换这一两个执行文件就可以了(如eva就是)。(对大体积包尤其有利)
还有一定要帖出md5sum及sha1sum,是帖在帖子上而不是需下载。

以上仅针对那种找不到可用的二进制包却又嫌编译太麻烦时只好将就一下得过且过的情形!!!
回复

使用道具 举报

 楼主| 发表于 2006-4-28 10:02:49 | 显示全部楼层
[quote:86dfaec063="积木"][quote:86dfaec063="zxczxc"]那如果是解释运行那部分是依赖什么的,JAVA的虚拟机?还是其他的?

linux下的基础语言是C++吗?[/quote]

楼主是……初学者吧。
先去查查啥叫做解释语言,啥叫做预编译语言。。。
Java居然让你说成了解释语言,我这个汗啊。
你不编译JAVA程序能在JAVA虚拟机上运行?[/quote]

呵呵,不是要靠某种虚拟环境才可以运行的程序都叫解释运行吗?JAVA程序我知道是经过编译的,但还是要在JAVA环境下运行(程序里面的好像不是机器码),这就叫做预编译啊?嗯,学习ing.....

那,哪些是属于解释运行的?解释运行也是应该有一个解释环境吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-23 05:34 , Processed in 0.059958 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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