講述在LINUX里進(jìn)行C++環(huán)境的搭建
C++是從C語言發(fā)展演變而來的,首先是一個更好的C,于1998年11月被國際標(biāo)準(zhǔn)化組織(ISO)批準(zhǔn)為國際標(biāo)準(zhǔn),成為目前的C++要在eclipse下搭建C++環(huán)境,需要下載的安裝包。
1.Eclipse IDE for C/C++ Developers,就是CDT。eclipse一開始應(yīng)該是為java開發(fā)設(shè)計,后來為C++開發(fā)弄了一個特別版,就是CDT。
2.JRE(java運行環(huán)境)或者JDK(java開發(fā)包,包含JRE,稍微大一點)。eclipse本身使用java寫的,java寫的程序需要java虛擬機才能執(zhí)行,所以要下JRE。
3.MinGW32編譯器。Eclipse自己不自帶C++編譯器,所以需要提供一個編譯器。eclipse支持很多C++編譯器,根據(jù)自己喜好選一個就行。裝編譯器的時候,注意添加相應(yīng)的環(huán)境變量到操作系統(tǒng)中,要不eclipse不知道你裝了。
需要下載的東西就是這些。CDT不用安裝,解壓就行。一個C++環(huán)境需要:文本編輯器,編譯器,調(diào)試器,生成makefile的工具等。文本編輯器由eclipse提供了;
編譯器和調(diào)試器由MinGW32提供了;#t#
makefile文件是用來告訴編譯器你寫的這么多.h文件和.cpp文件應(yīng)該怎么被編譯器編譯。比如,頭文件在哪里,源文件在哪里,怎么連接相應(yīng)的函數(shù)庫等。eclipse不能為你自動生成makefile。自己寫makefile則比較麻煩。
有很多生成makefile文件的工具,cmake就是其中一種。MinGW32好像就提夠了cmake(我的MinGW32是從內(nèi)部網(wǎng)絡(luò)下的,不知道其中cmake是別人加的,還是MinGW32自帶的,如果系統(tǒng)中沒有cmake,去網(wǎng)上下一個就好了)。
相比于visual studio,配置eclipse下的C++開發(fā)環(huán)境稍微麻煩一下。vs有點封閉,什么都為你搭建好了;eclipse則相對麻煩一點。新建一個C++工程的一個簡單流程:
1.打開eclipse的新建向?qū)?。工程類型:空工程。ToolChain:Other toolchain。
2.設(shè)置一下工程屬性。選擇合適的binary parser。因為自己選擇的編譯器,修改build commond(編譯命令)
3.寫代碼。
4.在工程目錄下新建一個CMakeLists.txt文件。針對自己的工程寫一個CMakeLists.txt文件。
5.打開命令行,用cmake命令編譯這個CMakeLists.txt文件,產(chǎn)生自己工程對應(yīng)的makefile文件
6.現(xiàn)在可以通過eclipse上的按鈕來編譯,運行,調(diào)試自己剛剛寫的工程了。
構(gòu)造函數(shù)相關(guān)的問題
1.當(dāng)你自己定義了Foo(int i)之后,編譯器是不會再給你生成Foo()的。
這一點在涉及到STL時可能會有幫助,因為有些STL的模板是需要默認(rèn)構(gòu)造函數(shù)的。
STL
1.有些STL的模板需要提供大小比較。
三、new
1. new和delete是關(guān)鍵字;operator new是個函數(shù)。兩者是不同的。C++環(huán)境有兩個作用,比如new Foo,首先調(diào)用operator new分配空間;然后調(diào)用Foo的構(gòu)造函數(shù)。
1.通過QDir創(chuàng)建目錄
任何一個QDir對象都可以用mkpath()創(chuàng)建目錄,不管它的existis()方法返回的是真是假。如果傳給mkpath()的參數(shù)是絕對路徑,那么根據(jù)這個絕對路徑來創(chuàng)建;如果給的是相對路徑,且QDir對象的exists()返回為假,那么mkpath()方法會把所有相關(guān)的目錄都給創(chuàng)建出來。如果路徑已經(jīng)存在,什么都不做,但是mkpath()的返回值仍然是true。