Linux程式設計之雜項技術

2021-10-03 19:03:56 字數 1223 閱讀 4325

1使用vc作為編輯器

識別linux下的函式

補充:如何在vc下識別linux下的函式?

可以把linux下的標頭檔案拷貝到windows上,並 配置visual assist新增此目錄。

cp/usr/include/*.h~/linux‐include

標頭檔案和子目錄有很多,可以有選擇得只拷 貝一部分過來。。。

2跨平台的程式設計技術

何為跨平台

乙份**,在windows可以編譯和執行,在 linux上也可以編譯和執行,則稱此**是可 以跨平台的。

特點:① 同乙份**,無需改動

② 執行結果相同

演示:使用vc作為編輯器

好處:(1)vc的編輯效率高

(2)vc的除錯效率,在vc下編譯、除錯成功後, 再到linux下編譯

(3) 同乙個專案目錄,適用兩種平台

(這是推薦的開發方式:先在vc下開發,最後到 linux編譯)

要求:盡量使用標準函式/型別/語法

如,ansi c / stl,是各個平台都支援的函式 char/short/int/double/float,這些型別各平台 都支援

跨平台**的要求

盡量避免平台相關的型別、函式、語法。。。

例如, int: vc下可以,應該用int

例如,有的編譯器認為這樣是變數i重複定義

for(int i=0; i<10; i++){}

for(int i=0; i<20; i++){}

例如,用fopen/fclose/fread/fwrite來開啟檔案, 不用open/close/read/write來開啟檔案

以popen/pclose為例,

在linux下,支援popen/pclose

在windows下,支援_popen/_pclose

如何做到**上的統一?

使用條件編譯

#ifdef _win32

#else

#endif

或者,在makefile顯式新增編譯選項

cxxflags += ‐d_linux

在**裡新增條件編譯:

#ifdef _linux

#else

#endif

學習資源 [《c語言/c++學習指南》linux開發篇](

/detail/1353)

Linux網路程式設計雜項

requests not to send sigpipe on errors on stream oriented sockets when the other end breaks the connection.the epipe error is still returned.當連線斷開,如果a...

Linux網路程式設計之socket技術

套接字,是一種接 術,它封裝了tcp ip通訊協議,使用它可以讓計算機之間通過網路傳輸資料,所有的作業系統使用的都基於socket的介面進行網路通訊的。不光可以用於網路間通訊,還可以用於程序間通訊,或者可以網路通訊理解為不同計算之間的程序間通訊。其實是一種記憶體物件,以描述符的形式呈現,傳送資料即寫...

Qt程式設計之除錯技術

17 除錯技術 qt應用程式的除錯可以通過ddd進行跟蹤除錯和列印各種除錯或警告資訊。ddd data display debugger 是使用gdb除錯工具的圖形工具,它安裝在linux作業系統中,使用方法可參考ddd的幫助文件。下面說明如何列印各種除錯或警告資訊 17.1 命令列引數 當你執行q...