在本篇文章中,筆者會談談如何搭建c++的執行環境。在不同作業系統中,執行c++編譯器的命令也各不相同,最常用的編譯器是gnu編譯器(linux系統)和微軟visual studio編譯器(windows系統)。
注意c++是沒有版本的說法的,只有編譯c++的編譯器才有版本這一說。c++常用的標準的是「c++11」和"c++98",其中「c++11」是目前最新的標準。如果是linux系統,gcc的版本至少都應該是4.7才能支援c++11標準,而且4.7還未完全支援c++11標準的所有特性,只支援了c++11標準的部分特性,傳送門。但是windows系統中的至少是visual studio 2015才支援"c++11"標準。
筆者的visua studio目錄為:c:\program files (x86)\microsoft visual studio 11.0
配置環境變數:
新增vs_home
c:\program files (x86)\microsoft visual studio 11.0
新增lib
%vs_home%\vc\lib
新增include
%vs_home%\vc\include
path環境變數追加:
%vs_home%\vc\bin
接下來測試一下:cl /?
然後編寫乙個hello.cpp檔案,內容如下:
//執行cl /ehsc hello.cpp,會得到hello.exe檔案。其中/ehsc表示啟用c++的異常處理,與/gx[-]相同。引入iostream
#include int
main()
讀者可能會遇到如下錯誤:
1.出現vc編譯,丟失mspdb110.dll解決
這是因為%vs_home%\vc\bin\下沒有mspdb110.dll「這個檔案,直接從%vs_home%\common7\ide\下複製這個檔案到%vs_home%\vc\bin\下即可解決。
2.無法開啟檔案「kernel32.lib」或缺少 「uuid.lib」
這是%vs_home%\vc\lib下沒有這兩個檔案,在不同的計算機中這兩個檔案的位置也不一定是固定的。讀者可以在c盤下搜尋kernal32.lib和uuid.lib,然後將它們拷貝到%vs_home%\vc\lib目錄下。
筆者的linux是:centos-7.4-x64版本。
在上面我們介紹了如何在windows下搭建和執行c++程式,在接下來的章節中,筆者將會**如何在linux下搭建c++語言環境。
在開始搭建環境之前,需要先了解gcc的概念。gcc的全稱是gnu compiler collection(gnu編譯器集合),通過gnu編譯器能夠編譯不同型別的語言。
gcc:gnu c compiler
g++:gnu c++ compiler
gcc編譯.c或.cpp結尾的檔案,但是gcc是分開編譯c和c++的。g++也可以編譯.c或.cpp檔案,但這些檔案都被作為c++進行編譯。
也就是說,g++編譯檔案的時候,預設是會引入標準庫(std)檔案的,但是gcc不會。
檢查gcc和g++是否安裝
gcc --version如果未安裝,可以按照如下的提示進行一步步進行安裝。g++ --version
如果是centos6系統:
# yum groupinstall 'development tools'centos7系統,可能會找不到「development tools」包,可以用如下的命令:
# yum -y install gcc-c++如果是debian 或 ubuntu 系統
$ sudo apt-get update在linux系統中,輸入如下命令會顯示gcc的安裝位置和版本資訊$ sudo apt-get install build-essential manpages-dev
如果是要使用c++11的特性,那麼應該將gcc的版本公升級到4.7以上,建議5.4的版本。
下面筆者介紹如何在centos7下,將gcc4.8公升級到gcc5.4版本,可以參考如下指令碼
echo "downloading gcc source files..."參考位址為:curl -o
echo "extracting files..."
tar xvfj gcc-5.4.0.tar.bz2
echo "installing dependencies..."
yum install gmp-devel mpfr-devel libmpc-devel -y
echo "configure and install..."
mkdir gcc-5.4.0-build
cd gcc-5.4.0-build
../gcc-5.4.0/configure --enable-languages=c,c++ --disable-multilib
make -j$(nproc) && make install
接下來筆者寫些c和c++的案例檔案,並且在linux系統編譯和執行起來。
demo.c
#include/*編譯命令可以用cc、gcc、make:demo.c: my first c program on a linux
*/int main(void
)
cc demo.c -o demo或
gcc demo.c -o demo或
make demo注意:在使用make編譯的時候,不用指定原始檔,只需要制定原始檔去掉字尾後的新的檔案,就可以了。例如上面的demo.c,只要使用make demo, make就會根據規則,將demo.c編譯為demo。
執行上面三個命令的任何乙個,都可以生成乙個名為demo的可執行檔案。
然後使用
./demo就可以執行了。
效果圖:
接下來我們來編譯和執行一下c++程式。
還是以上面的hello.cpp(這裡不再重複貼出**,就是第一節中「windows7 搭建執行環境」下的案例)為例,我們可以如下編譯
g++ hello.cpp -o hello或者
make hello注意這裡不能使用 gcc hello.cpp -o hello 來編譯(如果使用該命令編譯,那麼報出「找不到標準庫」的錯誤),因為gcc命令預設是編譯c語言檔案的,未引入標準庫。
然後執行就可以了
./hello如果使用了g++11的特性的話,那麼應該指明使用g++11標準進行編譯:
g++ hello.cpp -o hello -std=c++11如果make使用的時候,出現target is up to date錯誤資訊,那麼可以加上-b 選項,例如:
make -b hellohow to compile and run a c/c++ code in linux
c++ compiler support
what is the difference between g++ and gcc?
c c 的eclipse環境搭建
解壓到d 盤根目錄,如圖 path環境變數追加 d mingw64 bin 新建c include path環境變數並把值設定為 d mingw64 include新建library path環境變數並把值設定為 d mingw64 lib新建cplus include path環境變數並把值設定為...
C C 開發環境搭建
開始學習c 但是電腦空間不是很足,想搭建乙個比較節省空間的開發環境,可以不需要ide。網上找了半天,用了cygwin64,但是一直沒編譯成功,然後想換vs,占用空間勸退了。最後靜下來研究cygwin64編譯報錯問題,終於解決了,在此記錄下。我寫的內容是乙個簡單的hello world include...
Ubuntu下的C C 環境搭建
儲存編輯好的檔案 sudo apt get update 剛裝好的系統的root是進不去的,需要更改密碼 sudo passwd root 反正是內網用,所以就直接用root了,sudo太麻煩!接下來安裝ssh用以遠端登陸 apt get install ssh ok,接著裝編譯器 apt get ...