溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Visual Studio c++必要的背景知識--鏈接與編譯

發(fā)布時(shí)間:2020-08-10 23:16:50 來源:網(wǎng)絡(luò) 閱讀:688 作者:jackyBLF 欄目:編程語言

HowTo:

1) 如何創(chuàng)建和編寫靜態(tài)鏈接庫
2) 如何創(chuàng)建可執(zhí)行文件  
3) 如何創(chuàng)建頭文件和cpp文件
4) 如何相對路徑尋址
5) 如何進(jìn)行手動靜態(tài)庫鏈接
6) 如何編譯部分或全部程序

在撰寫Libuv源碼分析時(shí),感覺有些基礎(chǔ)的,通用的背景知識(主要是vc++相關(guān)方面的)還是單獨(dú)列出來,作為一篇bolg吧。


目的:通過模仿Libuv的結(jié)構(gòu)和編譯流程,分享一下如何使用vs c++編輯器和編譯器,最起碼知道如何進(jìn)行vs c++程序的鏈接和編譯。

按照Libuv的組織架構(gòu),將整個(gè)程序分成兩個(gè)部分:

1)  一個(gè)簡單的類型為靜態(tài)鏈接庫(.lib)的程序,僅導(dǎo)出一個(gè)函數(shù) void sayHelloWorld(); 用于打印出"hello world!"。

2)  一個(gè)簡單的類型為exe程序,鏈接上面的HelloWorld.lib,并調(diào)用其導(dǎo)出的sayHelloWorld()函數(shù)。

通過這個(gè)簡單的例子,讓我們來探索一下整個(gè)流程和關(guān)鍵點(diǎn)。對于新手來說,請重點(diǎn)關(guān)注c/c++的頭文件和鏈接庫的相對路徑設(shè)置是如何設(shè)置的!

流程1:

可執(zhí)行程序(.exe)項(xiàng)目工程


1) 到開你的vistual studio,左側(cè)選擇win32,新建一個(gè)win32/控制臺/空項(xiàng)目

Visual Studio c++必要的背景知識--鏈接與編譯

Visual Studio c++必要的背景知識--鏈接與編譯

之所以用空項(xiàng)目而不用default設(shè)置的預(yù)編譯頭,是為了簡單期間,使用預(yù)編譯頭雖然加速頭文件編譯,但是需要一些規(guī)則來支持的,因此簡單期間,還是使用空項(xiàng)目,自己手動創(chuàng)建頭文件和cpp文件
生成工程目錄后,只有一些空的文件夾

Visual Studio c++必要的背景知識--鏈接與編譯


2) 創(chuàng)建c/c++入口函數(shù)文件main.cpp

Visual Studio c++必要的背景知識--鏈接與編譯

Visual Studio c++必要的背景知識--鏈接與編譯


3) 打開剛才創(chuàng)建的main.cpp,編寫一個(gè)main函數(shù),按F5快捷鍵,至少讓你寫的c/c++程序運(yùn)行起來

Visual Studio c++必要的背景知識--鏈接與編譯

一個(gè)簡單的exe程序完成了!


流程2:

靜態(tài)鏈接庫(.lib)項(xiàng)目工程


1)在sln解決方案中添加一個(gè)lib類型項(xiàng)目工程



Visual Studio c++必要的背景知識--鏈接與編譯

Visual Studio c++必要的背景知識--鏈接與編譯

Visual Studio c++必要的背景知識--鏈接與編譯


2) 創(chuàng)建頭文件,聲明靜態(tài)鏈接庫要導(dǎo)出的函數(shù)原型


Visual Studio c++必要的背景知識--鏈接與編譯

Visual Studio c++必要的背景知識--鏈接與編譯

3) 創(chuàng)建cpp文件,include剛才聲明的頭文件,并實(shí)現(xiàn)函數(shù)原型


Visual Studio c++必要的背景知識--鏈接與編譯

Visual Studio c++必要的背景知識--鏈接與編譯

4) 編譯LibHelloWorld靜態(tài)鏈接庫

Visual Studio c++必要的背景知識--鏈接與編譯

5) 編譯生成的目錄位置

Visual Studio c++必要的背景知識--鏈接與編譯


流程3:

可執(zhí)行文件鏈接靜態(tài)庫

1) 在可執(zhí)行exe項(xiàng)目中如何相對路徑尋址

Visual Studio c++必要的背景知識--鏈接與編譯

2) 可執(zhí)行文件鏈接如靜態(tài)庫,并調(diào)試運(yùn)行,輸出結(jié)果

Visual Studio c++必要的背景知識--鏈接與編譯

到此,一個(gè)簡單的,包含靜態(tài)鏈接庫和可執(zhí)行文件的Demo演示完成了,通過該Demo,可以掌握很關(guān)鍵的一些知識:

1) 如何創(chuàng)建和編寫靜態(tài)鏈接庫
2) 如何創(chuàng)建可執(zhí)行文件  
3) 如何創(chuàng)建頭文件和cpp文件
4) 如何相對路徑尋址
5) 如何進(jìn)行手動靜態(tài)庫鏈接
6) 如何編譯部分或全部程序

希望對大家有幫助!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI