![]() | 1 tankb52 2016-04-01 09:25:39 +08:00 你这样看, Flyme 和 MiUI 都可以跑同一个 apk 啊。 |
2 hei1000 2016-04-01 09:32:55 +08:00 "不通内核版本的 linux 应该不通用", 那要看是否调用了不通内核版本之间的差异化接口 |
3 zeus255 2016-04-01 09:37:45 +08:00 ![]() 1 、 ABI 相同。 2 、所有的依赖库都能做到前向兼容。 一般来说符合这两个条件即可。 |
![]() | 4 liyvhg 2016-04-01 09:58:29 +08:00 openwrt 的 ipk 在编译生成的时候可以设置依赖, 依赖分为硬件依赖和软件依赖. 说人话: 只要是相同或相近 CPU 的产品, 在刷了 openwrt 之后, ipk 大多能通用. 例如大量的 MT7620n 和 MT7620a 路由器 少数 ipk 安装的时候提示不兼容, 大多是软件依赖中的内核依赖不满足, 可以手动解压缩提取出 bin 文件也能跑起来. |
5 RqPS6rhmP3Nyn3Tm 2016-04-01 10:04:39 +08:00 如果我记得没错, API, ABI, CPU 架构兼容就可以。 |
6 BOYPT 2016-04-01 10:31:24 +08:00 程序跟内核没什么关系,绝大多数程序不会去直接和内核打交道;即使有和内核通信,也已经是几十年不变的标准接口。只要程序的 CPU 架构兼容,依赖的运行库兼容就可以跑。 |
7 bramblex 2016-04-01 11:16:33 +08:00 依赖库的版本不同,甚至命名不同都有可能导致程序不能跑…… linux 下面二进制包的发行问题已经被诟病不是一天两天了…… 建议静态编译…… |
8 PerNet OP |
9 nicevar 2016-04-01 12:03:40 +08:00 linux 的依赖搞死几代人了 |
10 PerNet OP |
11 RqPS6rhmP3Nyn3Tm 2016-04-01 12:10:20 +08:00 @PerNet 抱歉我并不了解,但是我记得之前看过书是这么说的。 |
12 PerNet OP 帖子不能编辑了。我想问下,如果我安装三个个 liunx ,同样的硬件。就内核版本不一样。 3.x 4.x 5.x 。我在 3.x 下编译了一个软件,如 unzip 。我把编译好的二进制文件放到同样硬件不同 liunx 内核(如 4.x 5.x )的电脑还可以执行吗?突然想到还没时间做测试。哪位大神知道帮忙解答下! |
16 BOYPT 2016-04-01 13:09:44 +08:00 @PerNet 那要看你编译时候的参数是否能兼容你的 3 个 linux 。类似的情况你可以参考 java 的二进制 jre/jdk 包、 mysql 的二进制包,他们都是 linux 下的“绿色软件”,只要架构兼容既可以解压运行。 |
![]() | 17 3dwelcome 2016-04-01 13:11:53 +08:00 "帖子可以加附言", 加附言好贵的,还不如留言呢。 一般而言,都是可以兼容的,只要你依赖库 so 不要太特殊。我都是 cygwin 下编译成 elf, 然后直接 SSH 扔到服务器上运行,类似 unzip 这种算法,一点问题也没有。 |
![]() | 18 Khlieb 2016-04-01 16:39:05 +08:00 这要看官方发行时候的说明 |
19 Neveroldmilk 2016-04-01 16:52:18 +08:00 No ,除非作死。 |
21 ujmxyd 2016-04-01 20:20:55 +08:00 via iPhone |
![]() | 22 flynaj 2016-04-02 18:49:47 +08:00 via Android abi 相同,依赖库都有就可以了, abi 相同简单,依赖库就是大问题了,跟 windows 下的 DLL 一样,世界老大难问题 |
23 googlebot 2016-04-02 23:20:27 +08:00 via Android 争取静态编译,减少依赖, |