CPP project / makefile

files in the folder:

ls -l
-rw-r--r-- 1 ysgc staff 98 Aug 15 13:40 func1.cpp
-rw-r--r-- 1 ysgc staff 106 Aug 15 13:30 func2.cpp
-rw-r--r-- 1 ysgc staff 41 Aug 15 12:45 funcs.h
-rw-r--r-- 1 ysgc staff 198 Aug 15 13:48 main.cpp

// main.cpp
#include <iostream>
#include "funcs.h"
int main(){
    std::cout << std::endl;
    print_hello();
    std::cout << std::endl;
    std::cout << "The factorial of 5 is " << factorial(5) << std::endl;
    return 0;
}
//funcs.h
void print_hello();
int factorial(int n);
// func1.cpp
#include "funcs.h"

int factorial(int n){
    if (n != 1){
        return n*factorial(n-1);
    }
    return 1;
}
// func2.cpp
#include <iostream>
#include "funcs.h"

void print_hello(){
    std::cout << "hello world!!!" << std::endl;
}

1. Brute force

clang++ main.cpp func1.cpp func2.cpp -o hello && ./hello

hello world!!!

The factorial of 5 is 120

2. Makefile example 1

https://www.youtube.com/watch?v=aw9wHbFTnAQ

subl Makefile 注意這里M是大寫的

all:
    clang++ main.cpp func1.cpp func2.cpp -o a.out
compile:
    

make && ./a.out 默認(rèn)make第一個(gè)內(nèi)容廷雅,這里是“all”

all:
    
compile:
    clang++ main.cpp func1.cpp func2.cpp -o a.out

make compile && ./a.out 指定需要運(yùn)行的內(nèi)容名字厉亏,這里是“compile”

all: main.o func1.o func2.o # has these dependencies
    clang++ main.o func1.o func2.o -o a.out && ./a.out

main.o: main.cpp # check if main.cpp exists or not
    clang++ -c main.cpp

func1.o: func1.cpp
    clang++ -c func1.cpp

func2.o: func2.cpp
    clang++ -c func2.cpp

clean:
    rm -rf *o a.out

# format
# target: dependency
#   command

make && make clean

# define variables
CC=clang++
CFLAGS=-c -Wall

all: main.cpp func1.o func2.o # has these dependencies
    $(CC) main.cpp func1.o func2.o -o a.out && ./a.out

func1.o: func1.cpp # check if func1.cpp exists or not
    $(CC) $(CFLAGS) func1.cpp

func2.o: func2.cpp
    $(CC) $(CFLAGS) func2.cpp

clean:
    rm -rf *o a.out

# format
# target: dependency
#   command

make && make clean

3. Makefile example 2

https://www.youtube.com/watch?v=_r7i5X0rXJk

// main.cpp
#include <cstdlib>
#include "message.h"

using namespace std;

int main(){
    message m;
    m.printMessage();

    return 0;
}
//message.h
#ifndef MESSAGE_H
#define MESSAGE_H

class message{
public:
    void printMessage();
};

#endif
//message.cpp
#include <iostream>
#include "message.h"
using namespace std;

void message::printMessage(){
    cout << "Makefile example\n";
}
#Makefile
all: main.cpp message.o
    clang++ main.cpp message.o -o a.out && ./a.out

message.o: message.cpp
    clang++ -c message.cpp

clean:
    rm -rf *o a.out

4. Example 3

https://www.youtube.com/watch?v=j02hcX7R1yI

  • directly output an executable file
    • -o a.out, -o exe_file
  • two steps:
    • link file: -c file1.cpp or -c file1.cpp -o file1.o
    • to exe: xxx.o yyy.o zzz.o -o exe_file
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市西壮,隨后出現(xiàn)的幾起案子偶垮,更是在濱河造成了極大的恐慌张咳,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件似舵,死亡現(xiàn)場(chǎng)離奇詭異脚猾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)砚哗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門龙助,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蛛芥,你說(shuō)我怎么就攤上這事提鸟。” “怎么了仅淑?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵称勋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我涯竟,道長(zhǎng)赡鲜,這世上最難降的妖魔是什么空厌? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮蝗蛙,結(jié)果婚禮上蝇庭,老公的妹妹穿的比我還像新娘。我一直安慰自己捡硅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布盗棵。 她就那樣靜靜地躺著壮韭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纹因。 梳的紋絲不亂的頭發(fā)上喷屋,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音瞭恰,去河邊找鬼屯曹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛惊畏,可吹牛的內(nèi)容都是我干的恶耽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼颜启,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼偷俭!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起缰盏,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涌萤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后口猜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體负溪,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年济炎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了川抡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冻辩,死狀恐怖猖腕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恨闪,我是刑警寧澤倘感,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站咙咽,受9級(jí)特大地震影響老玛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一蜡豹、第九天 我趴在偏房一處隱蔽的房頂上張望麸粮。 院中可真熱鬧,春花似錦镜廉、人聲如沸弄诲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)齐遵。三九已至,卻和暖如春塔插,著一層夾襖步出監(jiān)牢的瞬間梗摇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工想许, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伶授,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓流纹,卻偏偏與公主長(zhǎng)得像糜烹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捧颅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,696評(píng)論 0 3
  • Makefile規(guī)則 一句話總結(jié)就是依賴關(guān)系景图,簡(jiǎn)單如下所示 target … : prerequisites … ...
    明明就_c565閱讀 4,764評(píng)論 0 2
  • 離我住的小區(qū)不遠(yuǎn),有一家開了近十年的西餅店碉哑,店很小挚币,是家分店,白天女主人在店里銷售扣典,男主人開著小送貨車往各個(gè)分店送...
    虎笨笨閱讀 303評(píng)論 0 0
  • 梧桐雨落花自好妆毕, 風(fēng)景流年等閑過。 山光美圖月下閑贮尖, 似水年華韶光度笛粘。
    心腹郁花自香閱讀 369評(píng)論 0 2
  • 姓名:王薇 公司:揚(yáng)州方圓建筑工程有限公司 【日精進(jìn)打卡第51天】 【知~學(xué)習(xí)】 《六項(xiàng)精進(jìn)》遍 共273遍 《大...
    b03815a7aaf5閱讀 117評(píng)論 0 0