<span id='ble63'></span><fieldset id='ble63'></fieldset>
      <dl id='ble63'></dl>
        1. <tr id='ble63'><strong id='ble63'></strong><small id='ble63'></small><button id='ble63'></button><li id='ble63'><noscript id='ble63'><big id='ble63'></big><dt id='ble63'></dt></noscript></li></tr><ol id='ble63'><table id='ble63'><blockquote id='ble63'><tbody id='ble63'></tbody></blockquote></table></ol><u id='ble63'></u><kbd id='ble63'><kbd id='ble63'></kbd></kbd>
        2. <i id='ble63'></i>

          <i id='ble63'><div id='ble63'><ins id='ble63'></ins></div></i>

          <code id='ble63'><strong id='ble63'></strong></code>
          <ins id='ble63'></ins>
          <acronym id='ble63'><em id='ble63'></em><td id='ble63'><div id='ble63'></div></td></acronym><address id='ble63'><big id='ble63'><big id='ble63'></big><legend id='ble63'></legend></big></address>
        3. 将VC程序移植到Linux系统的几点经验心得

          • 时间:
          • 浏览:2
          • 来源:124软件资讯网

            有时我需要制作LINUX与WINDOWS下都可以运行的法式  。在一样平常情形下 ,我会选择在WINDOWS平台下完成初始的开发 。由于VC提供的图形化的编辑与调试界面简直较GCC要高产得多  。在完成了测试之后  ,就最先把它向LINUX移植 ,移植的历程会有一些需要注重的地方  。

            下面就是我的一些心得 。

            文件名

            由于ext2文件系统对文件名是巨细写敏感的 ,当你在这种文件系统上举行编译的时间  ,源文件中泛起的#include 语句必须小心了  。由于在VC情况下  ,由IDE自动天生的#include 语句  ,其中的文件名所有是小写的  。以是  ,你需要在一最先就注重这个问题 ,严酷的使用巨细写敏感的文件名花样  ,制止在LINUX下编译时泛起找不到头文件的错误  。

            数据类型

            万万不要使用VC独占的数据类型  ,象__int16  , __int32 和__int64 等等  ,你无法保证其它的编译器能否支持它们 。特殊是__int64  ,它确实简化了编程事情 ,可是当你的逻辑里充满了这样的数据类型的时间  ,改动就变得无比难题了 。另有一个问题就是  ,我们经常在VC中使用WORD  ,DWORD ,INT  ,UINT这样的扩展数据类型  ,不直接使用编译器的数据类型有助于提高在差别平台之间的可移植性  。可是LINUX下没有界说这样的类型啊  ?实在只需要将windows.h和basetypes.h中对这些数据举行界说的语句复制到一个头文件中  ,再在linux下包罗进来就行了  。

            要害字

            要害字是比力利益理的工具  ,通常VC中带两个下划线的要害字  ,例如__asm都是VC独占的  。只管不使用它们 ,若是着实无法制止  ,就用#ifdef 和#endif为LINUX和WINDOWS编写两个版本  。

            MAKEFILE的编写

            你可以先用VC导出一个makefile  ,然后对其举行修改  ,但我倾向于从中拷贝出一段来天生GCC的makefile  ,比起手工编写要快许多 。

            法式设计结构

            这绝对是移植历程中问题最大的一个部门  。应用法式难免要用到操作系统的服务  ,若是完全使用尺度的C/C++编写  ,这将不是一个问题 ,可是当我们使用到多进/线程  ,管道  ,或者对WINDOWS图形界面的法式举行移植的时间 ,这个问题就变得突出了  。我们应当从设计上就为法式的移植打好基础 。

            解决这个问题首先必须搞清晰应用法式的逻辑模块  。对于这个模块必须使用尺度的C/C++举行编写  。同时将应用法式使用的线程数最小化  ,线程越多越难移植  。将输入输出模块自力出来  。最后划分出控制模块  ,这个模块与用户举行交互