国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

將VC程序移植到Linux系統的幾點經驗心得

2024-06-28 13:03:59
字體:
來源:轉載
供稿:網友
 

有時我需要制作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++進行編寫。同時將應用程序使用的線程數最小化,線程越多越難移植。將輸入輸出模塊獨立出來。最后劃分出控制模塊,這個模塊與用戶進行交互。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和田县| 武清区| 星子县| 新郑市| 锡林郭勒盟| 义乌市| 清远市| 阿克苏市| 辉县市| 昭平县| 石嘴山市| 从化市| 彭泽县| 西华县| 白玉县| 渭南市| 稻城县| 江阴市| 本溪市| 永年县| 名山县| 勃利县| 长兴县| 类乌齐县| 册亨县| 区。| 左贡县| 尚义县| 蒙城县| 应城市| 施甸县| 慈利县| 衡南县| 璧山县| 内乡县| 汤阴县| 岚皋县| 开鲁县| 卫辉市| 南阳市| 珠海市|