习学发开 发表于 2016-2-12 11:54:32

弱弱问下,是不是所有linux程序都是即时编译的?

嗯,就是下载下来的linux程序,似乎都是源代码,要想执行,必须现场编译?不像windows有个exe文件?

因为我看很多linux源程序当中,都有一些宏定义,这些宏定义根本不可能在编译之前知道,感觉是根据
你的linux系统情况来决定,比如说键盘布局,你的鼠标是usb的还是ps2的,等等?

skynet 发表于 2016-2-12 12:12:55

开发板又冒泡了.召唤大湿姐,大湿胸

xivisi 发表于 2016-2-12 12:20:00

因为是开源软件才是,非开源是给二进制

error_dan 发表于 2016-2-12 12:22:31

你去./sbin和./usr/bin下面看看...

习学发开 发表于 2016-2-12 12:28:04

xivisi 发表于 2016-2-12 12:20
因为是开源软件才是,非开源是给二进制

我还是不太明白,那那些开源的软件,如果出现我说的那种宏定义,
完全有可能在一台电脑上编译后,在另一台电脑上无法运行?

xivisi 发表于 2016-2-12 12:32:15

习学发开 发表于 2016-2-12 12:28
我还是不太明白,那那些开源的软件,如果出现我说的那种宏定义,
完全有可能在一台电脑上编译后,在另一台电 ...

当然,最明显的是32位和64位。即使是同样位数的系统,也会因为内核版本或裁剪配置不一样,而有差异,比较明显的,比如静态库和动态库

gamalot 发表于 2016-2-12 12:33:42

不是 ......

Bunny_Girl 发表于 2016-2-12 13:19:58

本帖最后由 Bunny_Girl 于 2016-2-12 13:29 编辑

“弱弱问下,是不是所有linux程序都是即时编译的?”
不是的
几乎每个linux发行版本都有官方的软件源(比如我用过的 archlinux, ubuntu, centos, debian ... 都有的)
所以大部分软件都可以直接从软件源里直接安装二进制的(就像exe那样,不用编译的)
而且比windows还方便哦~
一个命令下去,就自动下载and安装了
搜索软件,升级系统,也都是一个命令搞定

不过有时候还是需要编译的
比如官方源的版本太旧了,或者太新了你不适应,或者官方源里就没有这个软件
这种情况,除了自己去下载源码手动编译外,有些版本的linux还有更方便的方法
比如archlinux,有AUR源,用yaourt就可以搜索&下载&编译&安装&更新,一个命令下去就全自动了,像官方源一样方便

有些版本的linux,则是以编译为主的,比如gentoo(其实官方源也有二进制的)
然后也是有类似yaourt那样的工具可以自动下载&编译&安装&更新

像我比较懒的(懒得编译),我用arch,几乎都没有手动下载编译的(有编译也是yaourt自动的)
一个原因是图方便
还有一个,用pacman(官方源,二进制的)和yaourt(AUR源,编译的)安装的软件,是有系统管理的,以后查询/更新/删除都比较方便


“因为我看很多linux源程序当中,都有一些宏定义,这些宏定义根本不可能在编译之前知道,感觉是根据”
像我这类懒人,几乎没有去改or设置源码的宏定义,这也不是推荐的方法
手动编译安装的时候,会先运行一下配置程序,比如./configure (在源码的顶层目录里)
在configure命令后面加上各种配置参数即可(具体有哪些配置选项,可以./configure --help)

如果不是高手,直接手动去改源码,很容易出问题的。。。


“你的linux系统情况来决定,比如说键盘布局,你的鼠标是usb的还是ps2的,等等?”
键盘鼠标这些一般不会在源码里设置的
linux下的软件一般都会有配置文件(包括二进制安装的和编译安装的),都是在那里面配置
还有些基本通用的设置,系统也有配置文件的(比如键盘布局)

至于鼠标是usb还是ps2, 这就更底层了,都会封装好了给上层软件使用的,软件层不用考虑这些

imjacob 发表于 2016-2-12 16:04:01

用用apt-get install xx来装软件吧

习学发开 发表于 2016-2-12 16:13:04

Bunny_Girl 发表于 2016-2-12 13:19
“弱弱问下,是不是所有linux程序都是即时编译的?”
不是的
几乎每个linux发行版本都有官方的软件源(比如我 ...

好恐怖啊,bunny姐姐竟然也是什么都懂那种类型的~~

我感觉我好普通的~~{:3_58:}

sddp001 发表于 2016-2-12 16:44:31

你没用过sudo,apt get 吗?

习学发开 发表于 2016-2-12 18:09:53

sddp001 发表于 2016-2-12 16:44
你没用过sudo,apt get 吗?

太小看人了额额额e

笑笑我笑了 发表于 2016-2-12 18:13:04

当初我用Gentoo,不知道Firefox有二进制包,编译花了我十多个小时。

DevLabs 发表于 2016-2-12 21:36:22

笑笑我笑了 发表于 2016-2-12 18:13
当初我用Gentoo,不知道Firefox有二进制包,编译花了我十多个小时。

当年刚开始装Linux,同样不知道有二进制包,一个make下去我那破机子从头天晚上编译到第二天中午,居然还没有完,我就强制重启了。
页: [1]
查看完整版本: 弱弱问下,是不是所有linux程序都是即时编译的?