导航:首页 > 源码编译 > 一套代码编译到多个平台

一套代码编译到多个平台

发布时间:2023-08-02 15:58:58

1. java的跨平台是不是指同一个源程序在windows电脑上运行就能得到一个适合windows电脑的

不是,Java的跨平台,是指“一次编译,到处运行”,是指Java源代码编译后的字节码(.class)文件可以在不同操作系统上运行(Windows, linux, MAC等),而这些操作系统上需要有JRE(Java Runtime Enviorment)即虚拟机。

至于Android,只不过是借用了Java编程语言,是Google开发的另一个平台,它用的虚拟机和一般意义上的Java虚拟机JVM(Oracle /SUN的)不一样,叫Dalvik VM,它还需要把Java标准字节码文件(.class) 转换为Davik虚拟机代码(.dex)。apk安装包实际上就是压缩了dex文件的压缩包。

这个跨平台,不包括Android的,这主要是历史原因,Oracle还和Google打了场官司,你可以了解一下。Oracle对Java每推出一个新版本JDK,Google就要快速跟进,创造一些工具(ADT)让其能转化为Davik VM代码。

2. C++ 定义适应不同平台调用不同代码的方法

1、一般是在编译时指定,比如在windows编译,就指定__WINDOWS__宏,所有和windows有关的代码都被这个宏包围,于是就会被编译,而由于__LINUX__没有定义,所以linux相关的代码不会被编译。

2、一般设计好一个api,假设为f,在头文件f.h中声明为
void f();

为了简单起见,我们放在一个实现文件中,如果复杂可以分成多个文件。这里实现文件为f.cpp
void f()
{
#if defined(__WINDOWS__)
// windows specific code
#elif defined(__LINUX__)
// linux specific code
#else
# error "unknown platform"
#endif
}

若分成多个实现文件,不必像单个文件那样将平台相关代码用宏组织,理由是编译时会编译平台特定文件,可以这么组织文件。命名文件时加上平台缩写,比如上f.cpp,windows上命名为f.win32.cpp,linux上命名为f.linux.cpp,这样可以放在一个文件夹中组织,或者将不同实现文件放在不同文件夹中,windows上我们建立win32文件夹,linux上我们建立linux文件夹。如此组织,编译时,需要为不同平台编译不同文件。

3. 前端一套代码实现多端适配 有哪些方案

可以使用成熟的框架来实现适配,比如bootstrap,element-ui. 另外,也可以自己写css,实现宽度自适应,原理就是元素的宽度用百分比来设定。

4. Java的跨平台特性是指它的源代码可以在多个平台运行


Java代码是字节代码,就像楼上所说的Java是运行在虚拟机上的,虚拟机将Java字节代码和具体的平台给隔开,不同平台上面运行的虚拟机是不一样的,而这些虚拟机对Java代码要求是一样的,所以Java可以在多个平台运行

阅读全文

与一套代码编译到多个平台相关的资料

热点内容
对外汉语pdf 浏览:516
如何用mamp本地web服务器 浏览:869
如何加密自己js代码 浏览:627
排列组合a与c的算法 浏览:534
如何在文件夹中找到同名内容 浏览:786
有什么app文字转韩文配音 浏览:372
循环宏1命令 浏览:35
斐波那契数列矩阵算法 浏览:674
公式保护后加密不了 浏览:82
java跳转到jsp 浏览:819
327平方根算法 浏览:216
win7美化命令行终端 浏览:797
免加密狗图片 浏览:485
一只透明的鸟是什么app 浏览:817
空气压缩机油批发商 浏览:69
linuxifexist 浏览:4
加密tf卡拷入文件 浏览:399
山西php工资 浏览:673
福州看病预约用什么小程序app 浏览:238
php保留两位小数不四舍五入 浏览:292