成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++跨平臺應(yīng)用編譯方法詳解

開發(fā) 后端
C++跨平臺應(yīng)用的操作,應(yīng)該算得上是一個比較復(fù)雜的應(yīng)用,因為它的涉及面比較廣泛,比如:語言及基礎(chǔ)庫;操作系統(tǒng);網(wǎng)絡(luò);數(shù)據(jù)庫;界面等方面。

C++計算機(jī)編程語言應(yīng)用領(lǐng)域非常廣泛,可以輕松的幫助我們完成各種功能需求。比如今天為大家介紹的C++跨平臺應(yīng)用的實(shí)現(xiàn),就可以以一種簡單的方法來進(jìn)行具體的操作。希望能給大家?guī)硪恍椭?/p>

要建立一個C++跨平臺應(yīng)用,亦難也易。

難在什么?所謂應(yīng)用,自是實(shí)際應(yīng)用,牽涉面很廣。

眾所周知,不同的操作系統(tǒng)即時是相同的函數(shù)也可能有著差異。如參數(shù),返回值定義不同(socket),甚至語義不一樣(sleep)等等。如果全部需要自己來維護(hù)這個差異,必須手寫無數(shù)如下形式的代碼:

  1. #if defined WINNT  
  2. #elif defined LINUX  
  3. ... 

這絕對是一個浩大的工程。至于工程有多大,可以看一看 ACE 的開發(fā)成本。這是難!#t#

為了能實(shí)現(xiàn)C++跨平臺應(yīng)用,我要做的是尋找經(jīng)過大家實(shí)踐的證明能用的跨平臺庫來幫助編碼,建立在巨人的肩膀上,這個工作就變得容易了。下面逐一列出我的一些選擇:

0. 語言及基礎(chǔ)庫:

標(biāo)準(zhǔn) C++ 與 boost

標(biāo)準(zhǔn) c++ 是98年制定的,現(xiàn)在主流的 c++ 編譯器都能夠比較好的支持了。這里建議使用VC7.1和GCC4.0及以上版本。 boost 則是 C++ 標(biāo)準(zhǔn)委員會的一群人弄起來的一個 C++ 庫集合,其中不少庫以經(jīng)進(jìn)入 C++ TR1,可以說是準(zhǔn)標(biāo)準(zhǔn)。使用這里的庫我們有著充分的理由。象字符串的操作可以用 boost 的 String algorithms 庫,格式化操作可以用 boost::format,正則式可用 boost::regex 等等。boost 內(nèi)容相當(dāng)?shù)呢S富,具體內(nèi)容還請直接查閱 http://www.boost.org/libs/libraries.htm 這里有一個 boost 庫的列表。

1. 操作系統(tǒng)相關(guān)的:

ACE(ADAPTIVE Communication Environment) 和 boost

ACE 將操作系統(tǒng)的相關(guān)的互斥量、信號、進(jìn)程,線程等都很好的封裝起來,可以直接使用。不過如果沒有用到 ACE,當(dāng)然不是每個程序都跟網(wǎng)絡(luò)有關(guān),沒用到網(wǎng)絡(luò)時,可能也不會用ACE。這時可以考慮使用boost 中相應(yīng)的類 thread::thread, Boost.::Process 等。

2. 網(wǎng)絡(luò)

ACE

ACE 用來做網(wǎng)絡(luò)應(yīng)用是很不錯的,除了對異構(gòu)平臺的簡單的包裝外還有應(yīng)付各種環(huán)境的設(shè)計模式。甚至可以說是C++跨平臺網(wǎng)絡(luò)編程目前唯一之選。對于性能要求比較高的想使用IOCP(winnt)或EPOLL(linux2.6)的,ACE 也提供了包裝,可以方便使用。

3. 數(shù)據(jù)庫

OTL (Oracle, Odbc and DB2-CLI Template Library)

要支持?jǐn)?shù)據(jù)庫,不但要C++跨平臺應(yīng)用,還要跨數(shù)據(jù)庫,是不是比你想象的還要理想。OTL支持以下面的數(shù)據(jù)庫 : OTL Oracle ,SQL Server, Access, MySQL。還有其它的庫如DTL,但我看中了這個庫不但支持ODBC,它還支持?jǐn)?shù)據(jù)庫的原生接口,可以有更佳的性能。

4. 界面

QT, wxWidgets

雖然使用了多年的 MFC,我還是對 MFC 無數(shù)的宏深惡痛絕, wxWidgets 雖不錯但 MFC 風(fēng)格很明顯。還是用 QT 吧,面向?qū)ο蟮木幊踢€是比較讓人愉快的。不過,QT 是雙認(rèn)證的,當(dāng)你的程序免費(fèi)時它就免費(fèi),你的程序打算賣錢時,它也要,而且要價很高。所以,如果有版權(quán),成本上的考慮的話,則可以考慮wxWidgets。

列出了不少東西,希望給大家一些幫助。不過最后要注意一點(diǎn),每個庫支持的C++跨平臺應(yīng)用數(shù)量有多有少,并不一致,做應(yīng)用時要估量一下可能用到的平臺。不過,一般來說是足夠了,上面的庫至少支持 windows 和 unix/linux 兩種以上。到這里,基本上可以把自己寫的程序在 windows、linux 搬來去了,呵呵 "一次編碼,到處編譯!" 。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-24 09:45:10

Linux CC++

2010-01-19 15:18:12

C++語言

2010-02-01 15:59:09

C++逗號操作符

2010-02-05 15:51:06

C++ explici

2011-03-30 17:20:18

C++引用

2010-02-02 16:49:32

C++中文字符

2010-02-02 14:36:08

C++ Cstring

2023-02-10 14:54:20

編譯工具cmake

2021-05-07 08:00:19

應(yīng)用程序框架

2010-02-06 10:50:10

C++統(tǒng)計對象個數(shù)

2012-07-06 15:08:14

跨平臺工具Netbiscuits

2012-07-06 15:00:03

跨平臺工具MoSync

2023-09-13 14:42:08

typedefC++

2010-01-28 17:14:38

Visual C++應(yīng)

2010-02-06 11:19:33

C++獲取文件

2010-01-25 14:10:21

C++堆棧

2010-02-04 11:23:25

C++反射機(jī)制

2009-08-28 12:47:30

C#靜態(tài)方法應(yīng)用

2012-06-14 09:48:06

跨平臺工具SeregonDragonRad

2012-07-06 14:02:25

跨平臺工具RunRevLiveCode
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 青娱乐av | 2021狠狠天天天 | 91精品久久久 | 欧美日韩亚洲三区 | 亚洲欧洲一区二区 | 国产成人精品亚洲日本在线观看 | 亚洲欧美日韩精品久久亚洲区 | 丝袜一区二区三区 | 国产91在线 | 亚洲 | 欧美视频在线一区 | 欧美成人黄色小说 | 日韩欧美国产一区二区 | 99精品一区二区三区 | 人和拘一级毛片c | 一区二区三区四区电影视频在线观看 | 亚洲视频免费观看 | 中文字幕不卡一区 | 久久综合伊人 | 精品久久精品 | 久久精品中文 | 毛片一区二区三区 | 91精品国产乱码麻豆白嫩 | 性生生活大片免费看视频 | 国产精品免费在线 | 欧美电影免费观看高清 | 欧美日韩综合一区 | 秋霞电影一区二区三区 | 久在线 | 国产高清在线精品 | 欧美日韩电影一区二区 | 国产精品美女久久久久久不卡 | 婷婷综合 | 福利一区二区在线 | 中文字幕成人在线 | 日本欧美在线 | 日韩电影免费在线观看中文字幕 | 欧美片网站免费 | 91 在线 | 羞羞视频在线观看网站 | 日韩在线国产 | 欧美日韩国产在线观看 |