跨平台

C++的可移植性和跨平台开发

空扰寡人 提交于 2019-11-28 16:47:08
概述   今天聊聊 C++ 的可移植性问题。如果你平时使用 C++ 进行开发,并且你对 C++ 的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对你还是很有帮助的。    C++ 的可移植性这个话题很大,包括了编译器、操作系统、硬件体系等很多方面,每一个方面都有很多内容。鉴于本人能力、精力都有限,只能介绍每一个方面最容易碰到的问题,供大伙儿参考。   后面我会分别从编译器、 C++ 语法、操作系统、第三方库、辅助工具、开发流程等方面进行介绍。 编译器   在跨平台的开发过程中,很多问题都和编译器有关。因此我们先来聊聊编译器相关的问题。 编译器的选择   首先, GCC 是优先要考虑支持的,因为几乎所有操作系统平台都有 GCC 可用。它基本上成了一个通用的编译器了。如果你的代码在 A 平台的 GCC 能够编译通过,之后拿到 B 平台用类似版本的 GCC 编译,一般也不会有太大问题。因此 GCC 是肯定要考虑支持的。   其次,要考虑是否支持本地编译器。所谓本地编译器就是操作系统厂商自产的编译器。例如:相对于 Windows 的本地编译器就是 Visual C++ 。相对于 Solaris 的本地编译器就是 SUN 的 CC 。如果你对性能比较敏感或者想用到某些本地编译器的高级功能,可能就得考虑在支持 GCC

App和web的区别

僤鯓⒐⒋嵵緔 提交于 2019-11-28 14:20:32
App 优点:流畅、稳定、基本上一些App都可以脱网运行、用户体验好 缺点:不能跨平台 Web - 优点:可以跨平台 - 缺点:没有App流畅、不稳定(受限于网速和网络) http状态码 来源: CSDN 作者: hhf235678 链接: https://blog.csdn.net/hhf235678/article/details/78963013

Qt乱谈

依然范特西╮ 提交于 2019-11-28 13:21:57
目录 什么是Qt? C++ 跨平台 开发框架 Qt,一个神奇而又强大的库,凝聚了大量攻城狮的心血与智慧。一个技术的了解,我们通常是了解他能做啥,然后是怎么做的。下面我们先来了解下Qt能做啥。先来段维基百科的解释: 什么是Qt? Qt是一个面向桌面,嵌入式和移动的 跨平台 应用程序 开发框架 。 支持的平台 包括Linux,OS X,Windows,VxWorks,QNX,Android,iOS,BlackBerry,Sailfish OS等。 Qt本身 不是 一种编程语言。它是一个用C ++编写的框架。预处理器 MOC(元对象编译器) 用于扩展C ++语言,具有 信号和槽等功能 。在编译步骤之前,MOC解析用Qt-extended C ++编写的源文件,并从中生成符合标准的C ++源代码。因此,框架本身和使用它的应用程序/库可以由任何符合标准的C ++编译器(如Clang,GCC,ICC,MinGW和MSVC)编译。 提炼几个关键词:Qt是一个跨平台的C++开发框架。我们依次聊下这三个关键词:C++、跨平台、开发框架。 C++ C++进一步扩充和完善了C语言,是一种 面向对象 的程序设计语言。然而,系统中的一些事件处理很容易破坏面向对象思想(可参考MFC、wxWidget等的事件处理)。而Qt的做法是使用信号槽机制,完美解决事件处理与面向对象代码的问题。 跨平台

.NET Core跨平台部署于Docker(Centos)- 视频教程

落花浮王杯 提交于 2019-11-28 12:24:01
(双击全屏播放) 往期教程: .NET开发框架(一)-框架介绍与视频演示 .NET开发框架(二)-框架功能简述 .NET开发框架(三)-高可用服务器端设计 .NET开发框架(四)-服务器IIS实践教程 .NET开发框架(五)-IIS上部署ASP.NET Core项目教程 .NET开发框架(六)-架构设计之IIS负载均衡(视频) .NET开发框架(七)-技术栈学习目录 .NET开发框架(八)-服务器集群之网络负载平衡(视频) .NET开发框架(九)-NLB网络负载平衡配置实战(视频) Hyper-V + CentOS7 安装视频教程 Hyper-V + CentOS7 网络设置(视频教程) Ocelot - .Net Core开源网关 Ocelot(二)- 请求聚合与负载均衡 Ocelot(三)- 服务发现 Ocelot(四)- 认证与授权 Ocelot(五)- 流量限制、服务质量 Ocelot(六)- 架构图 Exceptionless - .Net Core开源日志框架 Exceptionless(二) - 使用进阶 简报:(六)IIS负载均衡视频教程,至今一共有 39人 参与完整教程学习。 来源: https://www.cnblogs.com/letyouknowdotnet/p/11403112.html

Java如何实现跨平台

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-28 10:28:25
什么是平台无关性 平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行。 也就是说,用Java创建的可以执行二进制程序,能够不加改变的运行于多个平台,Java减少了开发和部署的多个平台的成本和时间。 平台无关性的实现 其中扮演者重要的角色有Java语言规范、Class文件、Java虚拟机(JVN)等。 在计算机世界中,计算机只认识0和1.所以,真正被执行的其实是由0和1组成的二进制文件。 日常开发使用的C、C++、Java、python 都属于是高级语言,而非二进制语言,所以,想让计算机认识我们写出来的Java代码,那就需要 把他翻译成由0和1组成的二进制文件。这个过程就叫编译。负责这一个过程的处理的工具叫做编译器。 想把Java文件,编译成二进制文件文件,需要经过两步编译,前端编译和后端编译。 前端编译主要是指与源语言有关但与目标机无关的部分。Java中,我们知道的 javac 的编译就是前端编译。除了这种以外,我们使用的很多IDE如eclipse,idea等,都是内置了前端编译器, 主要功能就是.java文件转换为.class文件。 后端编译主要是将中间代码再翻译成机器语言。Java中,这一步骤就是后端编译(jvm来执行)。  Java虚拟机 之所以跨平台是由jvm来完成的,jvm会根据不用的操作系统和硬件设备,提供不同jvm

Docker和ASP.NET Core

半腔热情 提交于 2019-11-28 07:07:43
Docker和ASP. NET Core Docker 正在逐渐成为容器行业的事实标准,受到 Windows 和 Linux 生态系统领域最重要供应商的支持。 (Microsoft 是支持 Docker 的主要云供应商之一。)现在,Docker 基本上已经在各大云或本地的任何数据中心普及了。 如何将.NET程序托管到Docker之中,相信这是广大.NET开发者的一个疑问。 事实上,. NET Framework 支持在Docker中运行,但是仅能在w indows 容器中运行,这并不符合我们的预期,因此,本篇我们只侧重于讨论ASP. NET Core 和Docker。 在使用之前,笔者还是有必要介绍下ASP.NET Core。如果您对此非常熟悉和了解或者对此节不感兴趣,可以跳过本节。 A SP . NET Core 简介 ASP.NET Core是一个 跨平台的高性能开源框架 ,用于生成基于云且连接 Internet 的新式应用程序。使用 ASP.NET Core,我们可以: 建置 Web 应用程序和服务、 IoT 应用和移动后端。 能够在 Windows、macOS 和 Linux 上进行开发和运行。部署到云或本地。 在 .NET Core 或 .NET Framework 上运行。 能够在 IIS、Nginx、Apache、Docker

全新的Unity跨平台开发 IDE JetBrains Rider 2019.2 x64特别版下载

元气小坏坏 提交于 2019-11-27 23:51:23
Rider 基于 JetBrains 的平台,JetBrains 的平台很受那些使用 IntelliJ IDEA 的 Java 开发者和使用 WebStorm 的 JavaScript 开发者的欢迎。Rider 的主要 .NET 组件是 ReSharper,ReSharper 是 Visual Studio 的一个独立语言服务器扩展组件,它提供了代码分析、代码补全、代码重构、代码修复等功能。Rider 可以在 Windows、Mac 和 Linux 上运行。 强大的跨平台 C# 编辑器 JetBrains Rider 是一款快速强大的 C# 编辑器 ,用于在 Windows、Mac 和 Linux 上进行 Unity 开发。 以无与伦比的 2500 多项智能代码检查和重构,Rider 增强您的 C# 体验,使您更加迅速编写零误差的代码。 Unity 轻松开始 Rider 有内置的 Unity 支持,当你初次打开 Unity 解决方案时 它会自动将 Unity 配置为使用 Rider 作为默认的 C# 脚本和 shader 文件编辑器。 完成设置后,之后双击 C# 脚本或 shader 资产,即可在 Rider 中打开解决方案。 控制Unity 编辑器 由于集成的双向通信,无需离开 Rider,您即可切换进出 Play 模式,暂停,和逐帧执行! 工具条包含游戏视图按钮 Play

QT 环境安装和跨平台编译那些事

南楼画角 提交于 2019-11-27 19:48:47
QT源码和SDK下载 http://download.qt.io QT5.13安装 windows下通常使用VS来开发,而linux下则使用OtCreator来开发。 linux,以Ubuntu为例 安装Qt前需要先安装 g++ make sudo apt-get install libgl1-mesa-dev 安装环境准备好后直接安装 ./qt-opensource-linux-x64-5.13.0.run 即可。 注意:一般安装在/usr下,里面很多文件夹,根据文件的类型,分门别类,不是一个软件一个文件夹。以前老版本的Linux习惯放在/usr/local目录下。 部分软件放在/opt下,则是一个软件统一在一个文件夹下。/opt目录专门是用来给第三方软件放置文件的,比如一些压缩包解压的软件都放在这里。 比如“网易云音乐”就安装在/usr/lib/netease-cloud-music 比如Chrome就放在/opt/google/chrome Windows下调试工具的安装设置(使用微软的编译器) 安装完VisualStudio2017后,接着安装win10 SDK,安装完成后,在C:\Program Files (x86)\Windows Kits\10\Debuggers\x64(x86)下有一个cdb.exe用于调试。 Windows下

Xamarin的坑 - 绑定(一) - 拿微信iOS SDK 简单说起

谁都会走 提交于 2019-11-27 13:50:22
编者语: Xamarin 并入微软快一年了,在国内推广还是慢,主要有两个方面,Xamarin在国内的本地化不足真正在国内的解决方案基本上没有,第二就是和本土的一些主要SDK接入案例基本上也没有。上述原因令不少企业放弃使用这个很好的跨平台解决方案。在新一年本人觉得是时候把本人的东西贡献给各界友好了,希望把这几年开发的心得一次过给大家。当然在国内Xamarin社区也开始起步,如衣哥,guitarpark,周岳等Xamarin专家也会分享他们的经验。小弟只是做那么的一点点事摆了。 大家希望有一些本地化的SDK和Xamarin的整合,这无可避免地需要和一些Static Library 和 Dynamic Framework进行整合。这个时候就需要Binding了。Xamarin 给大家提供一个命令行工具Sharpie,对传统的 iOS Static Library 和 iOS Framework 进行转换适配C#的项目。 先看看Sharpie, Sharpie是一个命令。其实是通过Clang对调用Static Library /Dynamic Framework 时所需要的头文件进行转换,把C++/Objective-C转换成C#。 在Xamarin的网站你可以下载( https://download.xamarin.com/objective-sharpie

java的跨平台原理?

别来无恙 提交于 2019-11-27 10:41:45
首先我们要理解什么是跨平台,所谓的跨平台就是JAVA写的一份代码可以在任意的操作系统平台上运行。 为什么跨平台会成为一个问题呢?因为每一个操作系统平台支持不同的指令集我们所写的代码经过编译之后只能适用于一个平台,换一个平台就不支持了。而JAVA完美的解决了这个问题,JAVA是如何做到这一点的呢?在上图中我们可以看到JAVA代码执行的流程。 JAVA源代码->JAVA字节码->JVM解释执行 我们写的JAVA源代码会被编译为字节码,然后被JVM虚拟机解释执行,我们可以看到JVM虚拟机在跨平台的过程中发挥了重要的作用,就是由它解释字节码并执行的,对应于每一个平台都有一个JVM虚拟机,而字节码只有一份,windows的JVM虚拟机可以将字节码解释为能在windows平台上执行的指令并执行,Linux的JVM虚拟机可以将字节码解释为能在Linux平台上执行的指令并执行,他们执行的字节码都是同一份。这样就实现了跨平台。 来源: https://blog.51cto.com/11583017/2429905