国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【操作系統(tǒng)】Liunx項目自動化構建工具-make/Makefile

這篇具有很好參考價值的文章主要介紹了【操作系統(tǒng)】Liunx項目自動化構建工具-make/Makefile。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? ? ?

??【操作系統(tǒng)】Liunx項目自動化構建工具-make/Makefile,Linux,自動化,運維,linux

??Yan-英杰的主頁

悟已往之不諫 知來者之可追??

C++程序員,2024屆電子信息研究生


目錄

一、背景

二、Makefile

? ? ? ? 實現(xiàn)

? ? ? ? Makefile依賴

????????依賴關系

? ? ? ? makefile的工作原理

????????項目清理

????????補充:

? ? ? ? .PHONY是什么?

? ? ? ?Linux如何進行多行注釋:

????????說明:

三、Linux小程序(進度條)

四、使用git命令行

五、git三板斧

????????下載項目到本地

????????三板斧第一招: git add

????????三板斧第二招: git commit

????????三板斧第三招:git push


一、背景

???????? 會不會寫makefifile,從一個側(cè)面說明了一個人是否具備完成大型工程的能力一個工程中的源文件不計數(shù),其按類型、功能、模塊分別放在若干個目錄中,makefifile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進行更復雜的功能操作makefifile帶來的好處就是——“自動化編譯”,一旦寫好,只需要一個make命令,整個工程完全自動編譯,極大的提高了軟件開發(fā)的效率。make是一個命令工具,是一個解釋makefifile中指令的命令工具,一般來說,大多數(shù)的IDE都有這個命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make??梢?,makefifile都成為了一種在工程方面的編譯方法。make是一條命令,makefifile是一個文件,兩個搭配使用,完成項目自動化構建。

二、Makefile

? ? ? ? 實現(xiàn)

? ? ? ? ?C代碼
????????
#include <stdio.h>
int main()
{
     printf("hello Makefile!\n");
     return 0;
}
????????Makefifile文件 hello:hello.o gcc hello.o -o hello hello.o:hello.s gcc -c hello.s -o hello.o hello.s:hello.i gcc -S hello.i -o hello.s hello.i:hello.c gcc -E hello.c -o hello.i

? ? ? ? Makefile依賴

????????
.PHONY:clean
clean:
 rm -f hello.i hello.s hello.o hello

????????依賴關系

????????上面的文件 hello ,它依賴 hell.o
????????hello.o , 它依賴 hello.s
????????hello.s , 它依賴 hello.i
????????hello.i , 它依賴 hello.c

? ? ? ? makefile的工作原理

? ? ? ? ? ? ? ? ① make命令會在當前目錄下找到名字叫 “Makfile”或“makefile”的文件——>②首先
找到,第一個目標文件,在上面的例子中,他會先找到hello這個文件,并把這個文件作為最
終文件——> ③ 如果hello文件不存在,或者是hello所依賴的hello.o這個文件的修改時間要比
hello.o這個文件行,那么他就會執(zhí)行后面所定義的命令來生成hello這個文件——> ④? 如果
hello所依賴hello.o文件不存在,那么make會在當前文件中找目標為hello.o文件的依賴性,如
果找到則再根據(jù)那一個規(guī)則生成hello.o文件。(這有點像一個堆棧的過程)——> ⑤ 當然,
你的C文件和H文件是存在的啦,于是make會生成 hello.o 文件,然后再用 hello.o 文件聲明
make的終極任務,也就是執(zhí)行文件hello了。 ——> ⑥ 這就是整個make的依賴性,make會
一層又一層地去找文件的依賴關系,直到最終編譯出第一個目標文件。 ——> ⑦ 在找尋的過
程中,如果出現(xiàn)錯誤,比如最后被依賴的文件找不到,那么make就會直接退出,并報錯,而
對于所定義的命令的錯誤,或是編譯不成功,make根本不理。 ——> ⑧??make只管文件的依
賴性,即,如果在我找了依賴關系之后,冒號后面的文件還是不在

????????

????????項目清理

????????

????????像clean這種,沒有被第一個目標文件直接或間接關聯(lián),那么它后面所定義的命令將不會
被自動執(zhí)行, 不過,我們可以顯示要make執(zhí)行。即命令——“make clean”,以此來清除所有
的目標文件,以便重編譯。但是一般我們這種clean的目標文件,我們將它設置為偽目標,用
.PHONY 修飾,偽目標的特性是,總是被執(zhí)行的??梢詫⑽覀兊?hello 目標文件聲明成偽目
標,測試一下

????????補充:

? ? ? ? .PHONY是什么?
???????? .PHONY是一個偽目標,
????????可以防止在Makefile中定義的只執(zhí)行命令的目標和工作目錄下的實際文件出現(xiàn)名字沖突,另一種是提交執(zhí)行makefile時的效率。
? ? ? ?Linux如何進行多行注釋:

? ? ? ? 1.ESC退出到命令模式

? ? ? ? 2.ctrl+v 切換到可視化模式

? ? ? ? 3.HJKL挪動光標位置

? ? ? ? 4.shift+i輸入//

? ? ? ? 5.再按ESC即可,進行多行注釋

????????說明:
????????
????????(1)偽目標意思是這個目標本身不代表一個文件,執(zhí)行這個目標不是為了得到某個文件或東西,而是單純?yōu)榱藞?zhí)行這個目標下面的命令。
????????(2)偽目標一般都沒有依賴,因為執(zhí)行偽目標就是為了執(zhí)行目標下面的命令。既然一定要執(zhí)行命令了那就不必加依賴,因為不加依賴意思就是無條件執(zhí)行。
????????(3)偽目標可以直接寫,不影響使用;但是有時候為了明確聲明這個目標是偽目標會在偽目標的前面用.PHONY來明確聲明它是偽目標
? ? ? ? 例如:
????????
????????
.PHONY clean

clean:
        rm -rf *.o 

? ? ? ?使make命令會自動繞過隱含規(guī)則搜索過程,也就是說執(zhí)行命令make clean會自動忽略名

為"clean"文件的存在,因此聲明.PHONY配置項會改善性能,并且不需要擔心實際同名文件存在

與否。

? ? ? ??

三、Linux小程序(進度條)

? ? ? ?依賴關系:Makefile

????????

processbar: main.c processBar.c
    gcc -o $@ $^
.PHONY:clean
clean:
    rm -f processbar

? ? ? ??processBar.h

????????

#pragma once
#include<stdio.h>
#include<string.h>
#include<unistd.h>
extern void processbar();

????????

? ? ? ? processBar.c

????????

#include "processBar.h"
  
 void processbar()
 {
     int i = 0;
     char bar[102];
     memset(bar, 0 ,sizeof(bar));
     const char *lable="|/-\\";
    
    while(i <= 100)
    {
      printf("[%-100s][%d%%][%c]\r", bar, i, lable[i%4]);
      fflush(stdout);
      bar[i++] = '#';
      usleep(10000);
    }
    
    printf("\n");
    
}   

四、使用git命令行

? ? ? ? 背景:

????????Git屬于分散型版本管理系統(tǒng),是為版本管理而設計的軟件。

????????Linux的創(chuàng)始人Linus Torvalds在2005年開發(fā)了Git的原型程序。當時,由于在Linux內(nèi)核開發(fā)中使用的既有版本管理系統(tǒng)的開發(fā)方許可證發(fā)生了變更,為了更換新的版本管理系統(tǒng),Torvalds開發(fā)了Git。

????????Linux內(nèi)核的更新速度在全世界也算首屈一指。因此,勢必需要一個功能強、性能高的版本管理系統(tǒng)來提高開發(fā)速度。

????????在當時的開源環(huán)境下,雖然已經(jīng)有數(shù)款版本管理軟件被開發(fā)出來,但功能和性能都差強人意。加之Git是由Linus Torvalds親自著手開發(fā)的,可以說在功能與性能方面無可挑剔。程序員們愿意接受Git,很大程度上取決于這個背景。

????????
????????

五、git三板斧

? ? ? ? 注:在做這些操作之前要先有個gitee或github的賬號
????????

????????下載項目到本地

????????創(chuàng)建好一個放置代碼的目錄.
????????這里的 url 就是剛剛建立好的 項目 的鏈接 .

????????三板斧第一招: git add

????????

??git clone https://www.xxxx.com/xxxxxx
????????將代碼放到剛才下載好的目錄中
??????
????????將需要用 git 管理的文件告知 git

????????三板斧第二招: git commit

????????提交改動到本地
????????最后的 "." 表示當前目錄
????????提交的時候應該注明提交日志, 描述改動的詳細內(nèi)容 .
? ? ? ? 報錯:

????????

? ? ? ? 當遇到commit提交時,git命令無法識別,提交人的身份應該如何解決這種問題?

????????

//修改默認郵箱和賬戶

git config --global user.email "xxx@qq.com"

git config --global user.name "Yan-英杰"

【操作系統(tǒng)】Liunx項目自動化構建工具-make/Makefile,Linux,自動化,運維,linux

????????三板斧第三招:git push

????????????????同步到遠端服務器上 文章來源地址http://www.zghlxwxcb.cn/news/detail-568164.html

git push
????????同步到遠端服務器上
????????需要填入用戶名密碼. 同步成功后 , 刷新 Github 頁面就能看到代碼改動了

到了這里,關于【操作系統(tǒng)】Liunx項目自動化構建工具-make/Makefile的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【自動化項目實戰(zhàn)】博客系統(tǒng)

    【自動化項目實戰(zhàn)】博客系統(tǒng)

    目錄 1.博客自動化測試用例 2.準備工作? 3.將手工測試用例轉(zhuǎn)化為自動化測試用例 3.1 初始化動作 3.2 登錄 3.3 博客列表博客數(shù)量 3.4 查看全文 3.5 寫博客發(fā)表博客 3.6 刪除 3.7 注銷 4.總代碼 ??這節(jié)文章我們講解一個實戰(zhàn)項目——博客系統(tǒng)。首先我們需要 熟悉項目、針對核心流程

    2024年02月07日
    瀏覽(24)
  • 自動化項目實戰(zhàn) [個人博客系統(tǒng)]

    自動化項目實戰(zhàn) [個人博客系統(tǒng)]

    效驗第一篇博客 不是 “自動化測試” 退出到登錄頁面,用戶名密碼為空

    2024年02月08日
    瀏覽(17)
  • 博客系統(tǒng)自動化測試項目實戰(zhàn)(測試系列9)

    博客系統(tǒng)自動化測試項目實戰(zhàn)(測試系列9)

    目錄 前言: 1.博客前端頁面測試用例圖 2.測試用例的代碼實現(xiàn) 2.1登錄頁面的測試 2.2博客列表頁面的測試 2.3寫博客測試 2.4博客詳情頁面的測試 2.5已發(fā)布博客的標題和時間的測試 2.6注銷用戶的測試 結束語: 之前小編給大家講解了有關于Selenium和Junit5自動化測試的一些基礎知

    2024年02月10日
    瀏覽(41)
  • 項目實戰(zhàn)-RuoYi后臺管理系統(tǒng)-登錄功能Postman接口自動化腳本分享

    ????先來回顧一下之前寫過的關于RuoYi后臺管理系統(tǒng)項目實戰(zhàn)相關的幾篇文章: 測試項目實戰(zhàn)----RuoYi后臺管理系統(tǒng) 項目實戰(zhàn)-RuoYi后臺管理系統(tǒng)-用戶管理測試點設計 項目實戰(zhàn)-RuoYi后臺管理系統(tǒng)-登錄相關接口分析 Docker搭建webdis用于提供api查詢redis中的數(shù)據(jù) 項目實戰(zhàn)-RuoYi后臺管

    2023年04月20日
    瀏覽(22)
  • 【項目案例】前后端分離項目 【中小企業(yè)辦公自動化管理系統(tǒng) 】SpringBoot + Vue + Element UI + Mysql

    【項目案例】前后端分離項目 【中小企業(yè)辦公自動化管理系統(tǒng) 】SpringBoot + Vue + Element UI + Mysql

    ?? 博主介紹 : 博主從事應用安全和大數(shù)據(jù)領域,有8年研發(fā)經(jīng)驗,5年面試官經(jīng)驗,Java技術專家,WEB架構師,阿里云專家博主,華為云云享專家,51CTO 專家博主 Java知識圖譜點擊鏈接: 體系化學習Java(Java面試專題) ???? 感興趣的同學可以收藏關注下 , 不然下次找不到喲

    2024年02月14日
    瀏覽(32)
  • 移動端App自動化之觸屏操作自動化

    移動端App自動化之觸屏操作自動化

    工作中我們經(jīng)常需要對應用的頁面進行手勢操作,比如滑動、長按、拖動等,AppiumDriver 為我們提供一個模擬手勢操作的輔助類 TouchAction,可以通過它對手機屏幕進行手勢操作。 具體用法參見鏈接:chromedriver下載地址與webview自動化關鍵代碼 1 導入TouchAction 常用的手勢操作 To

    2024年02月19日
    瀏覽(24)
  • 干貨|移動端App自動化之觸屏操作自動化

    干貨|移動端App自動化之觸屏操作自動化

    工作中我們經(jīng)常需要對應用的頁面進行手勢操作,比如滑動、長按、拖動等,AppiumDriver 為我們提供一個模擬手勢操作的輔助類 TouchAction,可以通過它對手機屏幕進行手勢操作。 具體用法參見鏈接:chromedriver下載地址與webview自動化關鍵代碼 2 導入TouchAction 常用的手勢操作 To

    2024年02月01日
    瀏覽(21)
  • python 自動化學習(四) pyppeteer 瀏覽器操作自動化

    python 自動化學習(四) pyppeteer 瀏覽器操作自動化

    背景 之前我在工作中涉及到了很多地方都是重復性的頁面點點點工作,又因為安全保密原則不開放接口和數(shù)據(jù)庫,只有一個頁面來提供點擊進行操作,就想著用前面學的自動化來實現(xiàn),但發(fā)現(xiàn)前面學的模擬操作對瀏覽器來說并沒有那么友好,而后改用“selenium”,但是存在一

    2024年02月12日
    瀏覽(23)
  • Python操作自動化

    Python操作自動化

    迷途小書童 讀完需要 3 分鐘 速讀僅需 1 分鐘 當我們需要自動化進行一些重復性的任務時,Python 中的 pyautogui 庫就可以派上用場了,這個庫可以模擬鼠標和鍵盤的操作,讓我們的程序可以像人一樣與計算機進行交互。 首先,我們需要安裝 pyautogui 庫。在命令行中輸入以下命令

    2024年02月07日
    瀏覽(14)
  • Selenium 自動化操作

    Selenium 自動化操作

    嘿,小伙伴們周末有沒有像? 大豬 ?一樣在加班的,今天分享一個超有意思的東西?Selenium?自動化測試/調(diào)式工具。 Selenium 就像真實用戶所做的一樣,Selenium 測試可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Chrome和 Firefox 中運行。其他測試工具都不能覆蓋那么多的平臺。

    2024年02月19日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包