欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C++?編譯搜索路徑(包括include搜索路徑和連接搜索路徑)

今天試試mysql connector c++. 下載了已經(jīng)編譯好的文件,里面有兩個(gè)非常重要的文件夾分別是:

include 和 lib

 

include

如果不深究,你很快就知道頭文件的作用,在你使用這個(gè)這個(gè)庫里面的類(lèi)、方法的時(shí)候,需要使用include的方法引入,這個(gè)我們前面都說(shuō)過(guò),也很容易理解。include文件中包含了所有你要使用的東西的聲明,編寫(xiě)程序的時(shí)候你通過(guò)include語(yǔ)句將所要使用的東西的聲明copy過(guò)去。這樣編譯就可以成功了。

關(guān)鍵是,這個(gè)include文件夾我們放在那里去?

這個(gè)時(shí)候就涉及到了,編譯的時(shí)候,include默認搜索路徑的問(wèn)題。網(wǎng)上有很多這方面的介紹,有幾個(gè)原則這里說(shuō)明一下:

(1)著(zhù)名的使用<>和“”的區別。這么說(shuō)吧,<>有一系列的待選訪(fǎng)問(wèn)文件夾(路徑),編譯器依次訪(fǎng)問(wèn),先找到先用。那么“”就是在<>那一系列的訪(fǎng)問(wèn)路徑前面,加上一個(gè)“當前目錄”

(2)這是我一直的誤解,我不知道大家有沒(méi)有誤解。我之前認為會(huì )在哪些路徑(目錄),下面深入搜索下去。當初也不知道為什么就有這個(gè)想法。不過(guò)今天折騰了好長(cháng)時(shí)間,得出的結論是,編譯器只會(huì )搜索哪些指定路徑(目錄)下面的那些文件,不會(huì )繼續打開(kāi)下層文件夾繼續搜索。

    這個(gè)可以從好幾個(gè)方面看出:

   1)如果是嵌套搜索,將會(huì )導致搜索時(shí)間加長(cháng)。

   2)觀(guān)察/include/里面的那些頭文件的組織方式,你會(huì )發(fā)現他們呈現出較為平行的分布模式,也就是說(shuō),在一個(gè)大的功能模塊(一個(gè)文件夾)下面很少還會(huì )有更深的文件夾。

(3)記住,頭文件引入預編譯語(yǔ)句include只是引入頭文件,它可以使用絕對地址,也可以使用相對地址,這里的相對地址,指的是以那些設置好的一些列路徑(文件夾、目錄)為起始的相對地址,所以,如果你要使用頭文件是在那些路徑的下面的某個(gè)沒(méi)有進(jìn)入待選路徑的文件夾,你可以使用/加入文件夾前綴。include <cppconn/driver.h>

lib

 其實(shí),如果你繼續不深究,你也可以很簡(jiǎn)單的知道,lib是庫文件,而庫文件分成兩種,靜態(tài)和動(dòng)態(tài)。庫文件的作用是在鏈接的時(shí)候出現的。事實(shí)上,我們通常接觸不到它。更為準確的將,我們進(jìn)行鏈接的時(shí)候,是將各個(gè)目標文件(編譯而來(lái)),以及庫文件,合成在一起形成一個(gè)可執行程序。

我們編譯好的那些目標文件,有些在程序中所處的角色和庫文件是一樣的——都是那些頭文件的實(shí)現文件。鏈接的動(dòng)作,就是“兌現頭文件(聲明)所做的承諾(有這個(gè)東西)”

怎么兌現呢?有兩種方法:

1,直接將那些實(shí)現合并進(jìn)來(lái)。這就是著(zhù)名的靜態(tài)鏈接。

2,告訴你一個(gè)地址以及相關(guān)信息,你可以去看看,并且保存相關(guān)的引用信息。但是并不合并進(jìn)你的程序。待你的程序執行的時(shí)候,使用當初你保留的引用信息,就可以使用這個(gè)公用的“實(shí)現代碼”。這就是著(zhù)名的動(dòng)態(tài)鏈接。

 

 

 

bin include lib 梳理

 

我們在從linux文件目錄上看看這些東西的分布。

linux文件系統中,有些目錄需要我們注意,注意,linux目錄的安排是一種管理方式上的決定,也就是說(shuō),GNU希望大家都遵守這種文件安排模式,利于交流和可閱讀。

我們會(huì )經(jīng)??吹絙in/sbin include lib三種文件夾。

 

bin/sbin:

bin來(lái)源于binary,也就是二進(jìn)制文件,在linux中,文件盡量是明文的(也就是字符串格式的),這是linux尊從的一種守則,與windows有明顯的區別。在這種基調下,很少出現二進(jìn)制文件,出現的大部分就是機器語(yǔ)言的可執行文件,或者那種庫文件。在linnux中規定,bin/sbin夾下方的都是那種可執行的文件。這與lib中的文件不同,lib是庫,雖然也是二進(jìn)制機器代碼,但是它是不能自主執行的,是需要通過(guò)其他代碼的應用執行的。

系統程序通常放在 /bin /sbin下面, s的區別就是超級管理員才能使用的程序。

應用程序則放在/usr下面。

 

程序所要關(guān)聯(lián)的文件,包括include(開(kāi)發(fā)的時(shí)候需要引入的),lib編譯連接的時(shí)候需要應用,bin是編譯結束后的可執行程序的載體。

如果,不使用動(dòng)態(tài)鏈接,那么只需要bin,加上了動(dòng)態(tài)鏈接則需要lib。include文件在開(kāi)發(fā)編譯之后不必存在,所以你會(huì )發(fā)現在更目錄下,通常只有bin/sbin,lib而沒(méi)有include。因為,設計到系統支持的東西,也不會(huì )有太多編程的情景。

 

那么在/usr文件夾下,程序所需要的東西就分布的比較完整。

/usr 全稱(chēng)unix software room(可能準確)。也就是說(shuō)usr這個(gè)文件夾下面放的是在linux之上的一些軟件,我們統稱(chēng)為應用軟件(有時(shí)候也不是,其實(shí)系統軟件和應用軟件的界限本來(lái)就不明確,我們可以理解為,usr下裝的是那些在一個(gè)基本的操作系統之上的一些軟件)。這樣,你就可以明白linux文件目錄中,為什么有好多地方有bin,include,lib等等。

 

linux是在開(kāi)源思想下形成的,所以,對于一個(gè)軟件,linux的哲學(xué)是,它應該有源碼的(src)、應該附有編程接口的(include,lib),當然也不能缺一個(gè)可執行程序的基本的東西(bin,lib),而實(shí)際上,window所秉承的商業(yè)軟件結構,就基本上只會(huì )有bin和lib兩個(gè)東西。這就是區別:

所有在/usr 這個(gè)linux系統專(zhuān)門(mén)用來(lái)放應用軟件的文件夾下面就有:

/usr/bin /usr/sbin /usr/include /usr/lib/usr/scr這些文件夾(當然還有其他的一些東西)。

 

我們還有一個(gè)特殊的文件夾/usr/local

local里面的結構基本和/usr里面的差不多,這是怎么回事,雖然我不能確切的知道local的作用但是,許多有經(jīng)驗的人都告訴你,如果你自己進(jìn)行源碼編譯安裝軟件的話(huà),就盡量放在local下面的體系中。

 

那么原因是什么?很簡(jiǎn)單,/usr這個(gè)文件夾就是用來(lái)轉載一起linux上跑的應用程序,在它的下層目錄中,規整的放置著(zhù)程序的各個(gè)部分。也就是說(shuō)程序與程序之間并不是分開(kāi)放的,而是拆開(kāi)放在各個(gè)容器中。但是,這并不是硬性的技術(shù)要求,只是這樣的

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Linux文件夾分析
介紹 Linux 文件系統:這些目錄都是什么鬼?
Linux 目錄結構
學(xué)習 Linux,101: 查找并放置文件系統
比起Windows,怎樣解讀Linux的文件系統與目錄結構?
認識Linux之文件和目錄
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久