真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux命令

pwd      查看當(dāng)前路徑
rm 文件名     刪除文件
rm -rf 文件夾  刪除文件夾

道縣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

touch命令有兩個(gè)功能:一是用于把已存在文件的時(shí)間標(biāo)簽更新為系統(tǒng)當(dāng)前的時(shí)間(默認(rèn)方式),它們的數(shù)據(jù)將原封不動(dòng)地保留下來(lái);二是用來(lái)創(chuàng)建新的空文件。
ls -l    查看文件的詳細(xì)信息,如大小等

gcc/g++

g++ main.cpp -o main
預(yù)編譯,編譯,匯編,鏈接生成執(zhí)行文件main
g++ -c main.cpp
先編譯不鏈接,生成文件main.o(編譯的是單個(gè)文件,不管鏈接的庫(kù)路徑,當(dāng)項(xiàng)目文件很多時(shí)很有用,提高效率不用每個(gè)都編譯)。

?

g++ main.o -o main      鏈接,找唯一的main()函數(shù),最終生成執(zhí)行文件main
g++ -E main.cpp  預(yù)編譯

g++ -E main.cpp>main.e
將預(yù)編譯輸出到main.e,便于查看。預(yù)編譯將所有頭文件、用宏替換拼到一個(gè)文件中,因?yàn)榫幾g的時(shí)候只編譯這一個(gè)文件
g++ -S main.cpp  只編譯不匯編(生成文件main.s匯編碼)
g++ -g main.cpp -o main_d  
有調(diào)試信息的可執(zhí)行文件相當(dāng)于win的Debug版本

寫(xiě)程序:

int main(int argc, char *argv[])

argc 是 argument count的縮寫(xiě),表示傳入main函數(shù)的參數(shù)個(gè)數(shù);
argv 是 argument vector的縮寫(xiě),表示傳入main函數(shù)的參數(shù)序列或指針,并且第一個(gè)參數(shù)argv[0]一定是程序的名稱(chēng),并且包含了程序所在的完整路徑,所以確切的說(shuō)需要我們輸入的main函數(shù)的參數(shù)個(gè)數(shù)應(yīng)該是argc-1個(gè);
例如:

#include 
using namespace std;
void main(int argc,char *argv[])
{
    for(int i=0;i

argv是指向指針的指針,main函數(shù)的第二個(gè)參數(shù)“char *argv[]“也可以替換為 “char **argv“,兩者是等價(jià)的。

多文件編譯
預(yù)編譯的時(shí)候需要指定頭文件的路徑:

g++  main.c  ../Person/Person.cpp  -o  main  -I../Person 

預(yù)編譯過(guò)程需要頭文件路徑 , -I../Person指的是頭文件所在的路徑;
編譯或鏈接過(guò)程(我不確定到底是哪個(gè)好衰)需要函數(shù)的定義,../Person/Person.cpp是頭文件中的成員函數(shù)的實(shí)現(xiàn)

:再多的文件也把文件是拼過(guò)來(lái);也可以先生成.o文件在來(lái)鏈接。
動(dòng)態(tài)鏈接庫(kù)
1、生成名為Person的動(dòng)態(tài)鏈接庫(kù)文件libPerson.so

 g++ Person.cpp -fpic -shared  -o libPerson.so    命名必須以lib開(kāi)頭

Linux命令
2、使用動(dòng)態(tài)鏈接庫(kù)文件

g++ Person.cpp -o main -I../Person    能找到頭文件 

g++ main.cpp -o main -I../Person -L../Person -lPerson   
能找到頭文件和動(dòng)態(tài)鏈接庫(kù)文件

-I../Person是頭文件路徑;-L../Person是指定libPerson.so路徑(如果不指定默認(rèn)去系統(tǒng)環(huán)境變量的lib庫(kù)找);-lPerson是鏈接庫(kù)名。
Linux命令
:在執(zhí)行./main時(shí),報(bào)錯(cuò):
解決:方法1把動(dòng)態(tài)鏈接庫(kù)文件拷貝到系統(tǒng)的path路徑里;
方法2如圖,使用執(zhí)行腳本的方式
執(zhí)行腳本寫(xiě) :

export LD_LIBRARY_PATH=../Person

最后,執(zhí)行 ./main
也可以用ldd main 查看程序的鏈接情況。
補(bǔ)充:在使用opencv的時(shí)候出現(xiàn)了錯(cuò)誤:

main.cpp:(.text+0x53):對(duì)‘cv::imread(cv::String const&, int)’未定義的引用

解決:這是鏈接器的錯(cuò)誤。使用 pkg-config 的 –cflags 參數(shù)可以給出在編譯時(shí)所需要的選項(xiàng),而 –libs 參數(shù)可以給出連接時(shí)的選項(xiàng)

qiaoyunhao@ThinkPad:~/MyStudy/c_project/test$ g++ main.cpp `pkg-config --cflags --libs opencv` -o main

問(wèn)題解決!
pkg詳解參考:
https://blog.csdn.net/a1059682127/article/details/80554729
https://blog.csdn.net/weicao1990/article/details/51933918
makefiles的書(shū)寫(xiě)參考其它https://www.cnblogs.com/Bw98blogs/p/7297007.html


當(dāng)前標(biāo)題:Linux命令
文章地址:http://weahome.cn/article/geehec.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部