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

一套代码编译到多个平台

发布时间: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可以在多个平台运行

阅读全文

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

热点内容
卡尔曼滤波算法书籍 浏览:765
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:841
安卓怎么下载60秒生存 浏览:800
外向式文件夹 浏览:233
dospdf 浏览:428
怎么修改腾讯云服务器ip 浏览:385
pdftoeps 浏览:490
为什么鸿蒙那么像安卓 浏览:733
安卓手机怎么拍自媒体视频 浏览:183
单片机各个中断的初始化 浏览:721
python怎么集合元素 浏览:477
python逐条解读 浏览:829
基于单片机的湿度控制 浏览:496
ios如何使用安卓的帐号 浏览:880
程序员公园采访 浏览:809
程序员实战教程要多长时间 浏览:972
企业数据加密技巧 浏览:132
租云服务器开发 浏览:811
程序员告白妈妈不同意 浏览:333
攻城掠地怎么查看服务器 浏览:600