1. 程式人生 > >Linux學習日誌(基礎篇)----VIM末行模式(補充)、gcc相關

Linux學習日誌(基礎篇)----VIM末行模式(補充)、gcc相關

    6、vim配置檔案
            使用者級別:
                ~/.vimrc(隱藏的,直接建立即可)
            系統級別
                /etc/vim/vimrc
            使用vim --version可檢視詳細資訊
gcc相關(重點)
    1、gcc工作流程
        gcc呼叫其他處理器來完成整個流程
        預處理 -E(使用前處理器cpp)
            巨集替換
            標頭檔案展開
            註釋去掉
            將xxx.c變成了xxx.
i xxx.i還是c檔案 編譯 -S(編譯是最耗時的,編譯器gcc) 將xxx.i變成了xxx.s xxx.s彙編檔案 彙編 -c(彙編器as) 將xxx.s變成了xxx.o xxx.o就是二進位制檔案 連結(聯結器ld) xxx.o --> xxx(可執行檔案)(win下exe,linux下out) 2、gcc常用引數(24為重點掌握引數) 1
、查看板本資訊 gcc -v/--version 2、在編譯的時候指定標頭檔案的路徑 -I gcc sum.c -I ./include/ -o sum sum.c檔案中有一個自定義的head.h標頭檔案,但不在當前目錄中,這時就需要-I來指定標頭檔案的路徑 3、將彙編檔案生成.o二進位制檔案 -c gcc sum.c -c -I ./include/ 會在當前目錄下生成一個sum.o檔案 可使用file命令檢視相應檔案的格式 file sum
.o 結果:sum.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped file sum.c 結果:sum.c: C source, UTF-8 Unicode text 4、為生成檔案指定檔名 -o gcc hello.c -o name 5、gdb除錯 -g 6、在編譯的時候指定一個巨集 -D gcc sum.c -I ./include/ -D DEBUG 在sum.c中是不存在DEBUG這個巨集的,因此需要在進行編譯時使用-D引數指定 在除錯程式碼時是很有用的 比如在開發程式時,很多中間資訊需要輸出,對於這樣的printf語句 就可以在他的上面寫一句 #ifdef DEBUG 如果在編譯的時候指定了DEBUG這個巨集,那printf語句就會執行, 如果沒有指定,在預處理的時候這些語句就會被刪掉(相當於註釋) 7、警告資訊 -Wall [email protected]-virtual-machine:~/桌面$ gcc sum.c -I ./include/ -D DEBUG -o app -Wall sum.c: In function ‘main’: sum.c:9:9: warning: unused variable ‘aa’ [-Wunused-variable] int aa; ^ 8、優化程式碼 -On n代表優化級別:1、2、3(取值範圍就是1~3) 何為程式碼優化:就是精簡程式碼

相關推薦

Linux學習日誌基礎----VIM模式補充gcc相關

6、vim配置檔案 使用者級別: ~/.vimrc(隱藏的,直接建立即可) 系統級別

mysql刪庫跑路必會姿勢基礎:MySql架構與存儲引擎

文本文 creat 數據 sql ltp engine mysql5 並發 acid 基礎篇:MySql架構與存儲引擎 邏輯架構圖: 連接層: mysql啟動後(可以把mysql類比為一個後臺的服務器),等待客戶端請求,當請求到來後,mysql建立一個一個

IOS-—UICollectionView使用綜述基礎--垂直列表方式,橫向相簿方式

    人生活在世上只有短短的幾十年,卻浪費了很多的時間去想許多半年內就會被遺忘的小事。實際上,世界上有的傷心事都是由一些小事引起的,諸如一點小小的傷害、一絲小小的屈辱等等。有意思的是,那些在圖書館、實驗室從事研究工作的人很少因憂慮而精神崩潰,因為他們沒有時間享受這種奢侈

vim模式與sed命令

sed vim linux 文本替換 一、在vim中進入末行模式進行查找和替換: 在編輯模式中按/或?進行模式查找 格式:/pattern 可以使用N或n查找上一個或下一個 末行命令中的s命令,是進行替換的命令,先查找再根據模式進行替換 格式:

Linux學習工具基礎

1.為什麼要學習Linux? 不是因為大神都在用,而是因為linux是工作中部署環境必備的基礎技能,比如在docker部署環境。 2.用啥學linux? 1.初始學習階段使用vmware workstation pro。vmware的破解碼網上很多,這裡就不

linux學習之進程

通過 passwd 查看 現在 替換 cnblogs exe -1 stdio.h 進程原語 1.fork #include<unistd.h> pid_t fork(void);   fork   子進程復制父進程,子進程和父進程的PID是不一樣的,在

python學習之路基礎——列表,字典,集合

cef mes 所有 聽說 基本 變量 .so tdi 作用 一、列表,元組操作 定義列表 names = [‘Alex‘,"Tenglan",‘Eric‘] 查看 >>> names[0] ‘Alex‘ >>> names[2]

python學習之路基礎——函數

pri inux 形參 定義變量 dev 函數計算 學生 span 指定 一、簡單介紹 三種編程: 面向對象 class 面向過程 def 函數式編程 def 過程是沒有返回值的函數 定義: 函數是指將一組語句的集合通過一個名字(函數名)封裝起來,

linux——Shell 腳本基礎變量類型,變量操作,定義,運算與邏輯關系

字符型 代碼 子進程 變量類型 export 成功 bash變量 控制 path Shell 腳本基礎 1.變量 什麽是變量 #a=1 # echo $a 1 變量:可以變化的量 1.2變量名稱註意事項 變量名不能以數字開頭 不能與系統中已有的環境變量重名,盡量不要全部

學習爬蟲看著基礎

src robots 利潤 請求響應 網絡數據 不能 聚焦 海量 音樂 1.爬蟲的定義 網絡爬蟲(又稱網絡蜘蛛)模擬客戶端發送網絡請求,接收請求響應,自動的進行抓取網絡數據的程度。 註意: 網絡爬蟲在進行抓取數據的時候並不能進行辨別信息真偽(比如某直播平臺直播房間顯示在線觀

Java多執行緒學習基礎

1. java對執行緒的支援 java對執行緒的支援主要體現在Thread類以及Runable介面上,他們都位於java.lang包下,無論是Thread類還是Runable介面,它們都有public void run()方法,這個run方法為我們提供了執行緒實際工作時的程式碼,換句

Linux成長之路-基礎1

一、計算機組成及功能1、計算機的組成計算機組成指的是系統結構的邏輯實現,包括機器機內的資料流和控制流的 組成及邏輯設計等。主要分為五個部分:控制器,運算器,儲存器,輸入裝置,輸出裝置。2、各組成部分的功能(1)運算器:運算器的主要功能是對資料進行各種運算。這些運算除了常規的加、減、乘、除等基本的算術運算之外,

Python機器學習及實踐——基礎11迴歸樹

迴歸樹在選擇不同特徵作為分裂節點的策略上,與基礎篇6的決策樹的思路類似。不同之處在於,迴歸樹葉節點的資料型別不是離散型,而是連續型。決策樹每個葉節點依照訓練資料表現的概率傾向決定了其最終的預測類;而回歸樹的葉節點確實一個個具體的值,從預測值連續這個意義上嚴格地講,迴歸樹不能成

JQuery學習基礎

學習JQuery需要具備什麼? 學習JQuery只需要具備js知識; 什麼是JQuery? JQuery是js的一套框架; 為什麼學習JQuery? 因為JQuery語法簡單,方便開發; JQuery和js有什麼區別? JQuery物件在操作時更加

學習Qt之基礎——從入門開始1

Qt 簡介         Qt是一個跨平臺的C++應用程式開發框架,被廣泛用於開發GUI程式。 Qt有豐富的 API且面向物件。Qt是自由且開放原始碼的軟體,在GNU較寬鬆公共許可證條款下發布。支援廣泛的編譯器,包括GCC的C++編譯器和Visual Studio。 Q

Python機器學習及實踐——基礎7分類整合模型

    常言道:“一個籬笆三個樁,一個好漢三個幫”。整合分類模型便是綜合考量多個分類器的預測結果,從而做出決策。只是這種“綜合考量”的方式大體上分為兩種:    一種是利用相同的訓練資料同時搭建多個獨立的分類模型,然後通過投票的方式,以少數服從多數的原則作出最終的分類決策。比

Python機器學習及實踐——基礎10K近鄰迴歸

    在基礎篇5中提到裡這類模型不需要訓練引數的特點。在迴歸任務重,k近鄰(迴歸)模型同樣只是藉助周圍K個最近訓練樣本的目標數值,對待測樣本的迴歸值進行決策。自然,也衍生出衡量待測樣吧迴歸值的不同方式,即到底是對K個近鄰目標數值使用普通的算術平均演算法,還是同時考慮距離的差

深度學習筆記基礎——線性單元和梯度下降

        在上一篇文章中,我們已經學會了編寫一個簡單的感知器,並用它來實現一個線性分類器。你應該還記得用來訓練感知器的『感知器規則』。然而,我們並沒有關心這個規則是怎麼得到的。本文通過介紹另外一種『感知器』,也就是『線性單元

深度學習筆記基礎——機器學習與深度學習簡介

  機器學習是最基礎的(當下初創公司和研究實驗室的熱點領域之一)。深度學習是非常嶄新和有影響力的前沿領域。 一、定義 1、機器學習    從樣本中學習的智慧程式。是資料驅動的。90年代初提出。強調的是給計算機程式(或者機器)輸入一些資料後,它學習這些資料,而

玩轉Linux之必修內功基礎

首先說一下,由於 Linux相對Windows來說比較穩定, Shell的強大, 使得很多操作可以不用滑鼠, 顯得Linux如此迷人。 如果你看過《你可能不知道的Shell》以及《28個Unix/Linux的命令列神器》你就會知道Linux有多強大,這個強大完