当前位置: 代码迷 >> WinCE >> 来自初学者的困惑之“怎么让C程序同时搞定电脑和手持机?”
  详细解决方案

来自初学者的困惑之“怎么让C程序同时搞定电脑和手持机?”

热度:173   发布时间:2016-04-28 11:57:54.0
来自菜鸟的困惑之“如何让C程序同时搞定电脑和手持机?”
同样是.exe,为什么有的只能在电脑上安装使用,有的只能在平板和手持机上安装使用。都是C/C++开发出来的东西,为啥不能在电脑和手持机上一起跑呢?各位已经在嵌入式行业里混的大虾,谁能给小弟指点一下,感激不尽呵!有啥办法可以让一个C程序在电脑上跑完后,在手持机上也能健步如飞呢?
------解决思路----------------------
使用什么编程语言,与最后运行没有什么关系。
电脑与手机,最主要的 CPU 就不同吧,一般来说一个是 X86、一个是 ARM。其次,操作系统不同吧。

LZ,你的想法是好的,但现实是残酷的。
------解决思路----------------------
当然是要用各自系统的编译器各编译一遍才行
java号称跨平台,是因为增加了一个硬件隔离层,也就是java虚拟机,等于java不需要完全编译,变成了类似解释型语言
------解决思路----------------------
主要是环境不一样吧,就像电脑用Windows系统手持机用winCE系统啊
------解决思路----------------------
引用:
小弟我想知道的是:源代码怎么做才能变成在电脑运行的程序,怎么做才能变成在Windows CE运行的程序呢?

LZ有一份C/C++源程序,
在PC电脑(Windows OS)上运行:
C/C++源程序 -> Windows PC编译器编译 -> Windows PC上可执行的程序
在手持机(Windows CE)上运行:
C/C++源程序 -> Windows CE编译器编译 -> Windows CE上可执行的程序

不同的平台有不同的OS和CPU:
1.  不同的OS(Windows PC, Windows CE, Linux PC, OSX etc.), OS提供的System Call和运行库会不一样;
2. 不同的CPU支持的指令集(ISA)不一样;
所以,类似的源程序如果要在在Windows 7 + x86平台运行,对应的EXE执行程序会引用Windows 7的System Call和运行库,必须是x86指令集的执行代码;如果在Windows CE + ARM平台运行,对应的EXE执行程序会引用Windows CE的 System Call运行库,必须是ARM指令集的执行代码。
------解决思路----------------------
我也是菜鸟,不过以我理解就像同样一支笔写英文就要按英文的字母结构,写中文就按中文笔法结构,虽然写的是同一句话意思。就像用c语言写个程序,同样的cpu内存显卡写windows程序就按win的逻辑架构来写,写苹果os就按苹果os的逻辑架构来写,虽然程序运行效果差不多,但程序除了核心算法,其它接口内存运行机制一大半都不一样的,所以移植差不多就是重写啦!!!
不知这样理解有没错。
------解决思路----------------------
引用:
弱弱的问一句,Windows CE用什么编译器

CE Platform Builder带了编译生成CE可执行程序的所有组件和工具。
------解决思路----------------------
引用:
弱弱的问一句,Windows CE用什么编译器

Microsoft embedded visual C++4.0 
Visual studio 2005/2008 或很高版本 

必须配合相应的 SDK 使用,SDK 决定 CPU 的类型
------解决思路----------------------
电脑和手机CPU架构都不一样怎么跑啊?除非你搞个java的
  相关解决方案