解析Linux C C 開發的難度到底在哪

2021-09-27 05:37:08 字數 1124 閱讀 8398

經常被問到的問題, 如何學習c++, 如何學習linux, 如何開始?

其實這個問題對於不同的人答案往往不盡相同,每個人所處的環境就不同。乙個普遍的現象是有一些windows開發基礎的人,他們想轉linux開發,那我就以這個點和大家討論一下。

相對於linux下的c/c++開發,在windows下的初學者往往容易入門,原因是visual studio, 這個強大的工具隱藏了很多的細節,好多人甚至以為拖拖控制項,寫寫訊息響應函式就是軟體工程師了,這點在入門的時候尤為明顯,出生牛犢不怕虎,信心滿滿。但是在這個強大工具的背後,隱藏了太多的東西,其中許多對於我們來說是非常重要的東西,比如make, debug, call stack, 彙編**,os,哪些功能是系統提供的,哪些是工具提供的。所以很多人轉過來的時候往往去模擬以前windows的知識,但是又對不上,再加上無人指點,工作不用,可能慢慢的就會失去信心。

但是我認為作為乙個有追求的軟體工程師,如果不了解linux, 我不認為他合格,當然此處無意挑起平台之爭,實在是對於軟體工程師而言linux給了我們另乙個選擇,另一種思路,同時也提供了我們很多的輪子和一座寶庫。

如下總結出一些建議,希望對windows轉linux開發的朋友有所幫助。

1. 不要一開始就去搞核心,先裝上系統用linux來完成一些日常的事情,比如:看電影,拷貝檔案,新增修改使用者,檔案,學學shell 指令碼。

2. 試著用命令列去編譯一些簡單的**,然後逐步增加難度,然後學學make。

3. 學習linux的一些基礎知識,找本書看看。

4. 嘗試自己去寫一些小的東西,動起手來,別總看書而不去實踐,實踐出真知。

5. 學習如何除錯**。

6. 學習主要的一些系統呼叫,檔案操作,socket操作等等。

7. 學習簡單的驅動開發,比如:串列埠驅動。

8. 學習...

9. 學習核心源**。

另外在此需要指出的是,當你真正看透了windows和linux的軟體開發的時候,你可能並不覺得他們有很大的區別,所謂殊途同歸,說的可能就是這個道理,比如這兩個平台的**最後都會轉換為ia32架構的指令序列,在轉換過程中使用了不同的工具,反出來的彙編**區別也不是太大。還是那句話,做同樣的事情,每個人的切入點不同,所謂站得一山方望得另一山高,千萬不要畏而不前,遲遲不敢動手。

希望此文對大家有所幫助。

iOS開發中的HTML解析

在進行解析前,先將下面的第三方類新增到工程中 新增以上三個類必須新增乙個庫,這個庫是 libxml2.2.dylib。還需要設定一些路徑引數這個路徑的設定,在 targets中,在build settings搜尋header search paths,將debug和release設定不同的值 deb...

解析網域名稱及配置到對應的專案

解析網域名稱 在控制台點選網域名稱,找到對應的網域名稱後解析,新增解析,記錄型別為a 記錄值為對應的伺服器ip,確定啟用。可能需要幾小時之後生效,可以在cmd裡ping一下 出現不是內部或外部命令則解析不成功,出現已傳送,已接受等則說明成功。1.由於網域名稱預設訪問的是伺服器的80埠,所以需要將to...

敏捷中開發中的承諾解析

敏捷中的 promise 和 從commitment其實是不同的,具體參考下面兩篇文章的說法 摘抄其中說的不錯的一段 當自己得到這個問題的答案之後,我思考的第二個問題是,在具體的專案實踐中,怎麼去落地這5個價值觀?對於勇氣,尊重,專注,開放這4點,我並沒有花費很多時間就想到了方案,我相信如果能認同這...