如何在Ubuntu中安裝C/C++編譯器和開發工具
許多Linux工程師需要使用一些通用的程式語言來自動化他們的日常任務。本文介紹如何在Linux中安裝C和C++編譯器及其開發工具(build-essential)以及相關的軟體包,例如make、libc-dev、dpkg-dev等。
在開始安裝之前,最好先了解一下編譯器。
“編譯器是一個軟體程式,它處理用特定程式語言編寫的語句,並建立一個二進位制檔案,機器的CPU可以很容易地理解並執行這些語句。”
安裝C、C++編譯器和開發工具
如果您的系統中未安裝**Build-Essential工具**,請使用以下命令:
$ sudo apt-get install build-essential
輸出應該類似於:
Reading state information... Done The following packages were automatically installed and are no longer required: gcc-4.8-base:i386 libasn1-8-heimdal:i386 libasound2:i386 libasound2-plugins:i386 libasyncns0:i386 libavahi-client3:i386 libavahi-common-data:i386 libavahi-common3:i386 libbit-vector-perl libcapi20-3:i386 libcarp-clan-perl libclass-method-modifiers-perl libcups2:i386 libdata-random-perl libdate-calc-perl libdate-calc-xs-perl libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libedit2:i386 libelf1:i386 libexif12:i386 libexpat1:i386 libffi6:i386 libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcrypt11:i386 libgd-perl libgd3:i386 libgif4:i386 libgl1-mesa-dri-lts-wily:i386 libgl1-mesa-glx-lts-wily:i386 libglapi-mesa-lts-wily:i386 libglib2.0-0:i386 libglu1-mesa:i386 libgnome2-gconf-perl libgnutls26:i386 libgpg-error0:i386 libgphoto2-6:i386 libgphoto2-port10:i386 libgssapi-krb5-2:i386 libgssapi3-heimdal:i386 libgstreamer-plugins-base0.10-0:i386 libgstreamer0.10-0:i386 libhcrypto4-heimdal:i386 libheimbase1-heimdal:i386 libheimntlm0-heimdal:i386 libhx509-5-heimdal:i386 libice6:i386 libieee1284-3:i386 libjack-jackd2-0:i386 libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-26-heimdal:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms2-2:i386 libldap-2.4-2:i386 libllvm3.6:i386 libltdl7:i386 libmouse-perl libmpg123-0:i386 libnet-dropbox-api-perl libogg0:i386 libopenal1:i386 liborc-0.4-0:i386 libosmesa6:i386 libp11-kit-gnome-keyring:i386 libp11-kit0:i386 libpciaccess0:i386 ........................
加速C和C++編譯
我們應該刪除舊的快取檔案以加快編譯速度。要安裝快取管理工具,請使用以下命令:
$ sudo apt-get install aptitude
輸出應該類似於:
Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: gcc-4.8-base:i386 libasn1-8-heimdal:i386 libasound2:i386 libasound2-plugins:i386 libasyncns0:i386 libavahi-client3:i386 libavahi-common-data:i386 libavahi-common3:i386 libbit-vector-perl libcapi20-3:i386 libcarp-clan-perl libclass-method-modifiers-perl libcups2:i386 libdata-random-perl libdate-calc-perl libdate-calc-xs-perl libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libedit2:i386 libelf1:i386 libexif12:i386 libexpat1:i386 libffi6:i386 libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcrypt11:i386 libgd-perl libgd3:i386 libgif4:i386 libgl1-mesa-dri-lts-wily:i386 libgl1-mesa-glx-lts-wily:i386 libglapi-mesa-lts-wily:i386 libglib2.0-0:i386 libglu1-mesa:i386 libgnome2-gconf-perl libgnutls26:i386 libgpg-error0:i386 libgphoto2-6:i386 libgphoto2-port10:i386 libgssapi-krb5-2:i386 libgssapi3-heimdal:i386 libgstreamer-plugins-base0.10-0:i386 libgstreamer0.10-0:i386 libhcrypto4-heimdal:i386 libheimbase1-heimdal:i386 libheimntlm0-heimdal:i386 libhx509-5-heimdal:i386 libice6:i386 libieee1284-3:i386 libjack-jackd2-0:i386 libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-26-heimdal:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms2-2:i386 libldap-2.4-2:i386 libllvm3.6:i386 libltdl7:i386 libmouse-perl libmpg123-0:i386 libnet-dropbox-api-perl libogg0:i386 libopenal1:i386 liborc-0.4-0:i386 libosmesa6:i386 libp11-kit-gnome-keyring:i386 libp11-kit0:i386 libpciaccess0:i386 libpulse0:i386 libroken18-heimdal:i386 libsamplerate0:i386 libsane:i386 libsasl2-2:i386 libsasl2-modules:i386 libsasl2-modules-db:i386 libsm6:i386 libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386 libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtxc-dxtn-s2tc0:i386 libusb-1.0-0:i386 libv4l-0:i386 libv4lconvert0:i386 libvorbis0a:i386 ...................................
現在使用**aptitude**安裝**ccache**工具,如下所示:
$ sudo aptitude install ccache
示例輸出應該類似於:
The following NEW packages will be installed: ccache The following packages will be REMOVED: gcc-4.8-base:i386{u} libasn1-8-heimdal:i386{u} libasound2:i386{u} libasound2-plugins:i386{u} libasyncns0:i386{u} libavahi-client3:i386{u} libavahi-common-data:i386{u} libavahi-common3:i386{u} libbit-vector-perl{u} libcapi20-3:i386{u} libcarp-clan-perl{u} libclass-method-modifiers-perl{u} libcups2:i386{u} libdata-random-perl{u} libdate-calc-perl{u} libdate-calc-xs-perl{u} libdrm-amdgpu1:i386{u} libdrm-intel1:i386{u} libdrm-nouveau2:i386{u} libdrm-radeon1:i386{u} libedit2:i386{u} libelf1:i386{u} libexif12:i386{u} libexpat1:i386{u} libffi6:i386{u} libflac8:i386{u} libfontconfig1:i386{u} libfreetype6:i386{u} libgcrypt11:i386{u} libgd-perl{u} libgd3:i386{u} libgif4:i386{u} libgl1-mesa-dri-lts-wily:i386{u} libgl1-mesa-glx-lts-wily:i386{u} libglapi-mesa-lts-wily:i386{u} libglib2.0-0:i386{u} libglu1-mesa:i386{u} libgnome2-gconf-perl{u} libgnutls26:i386{u} libgpg-error0:i386{u} libgphoto2-6:i386{u} libgphoto2-port10:i386{u} libgssapi-krb5-2:i386{u} libgssapi3-heimdal:i386{u} libgstreamer-plugins-base0.10-0:i386{u} .........................................
使用示例程式測試C和C++
例如,要測試一個**C**程式,建立一個名為**sum.c**的檔案並新增以下命令:
#include int main() { int a, b, c; printf("Enter two numbers to add: "); scanf("%d%d",&a,&b); c = a + b; printf("The sum of two numbers equals %d
",c); return 0; }
上述命令給出兩個數字之和的結果。要將上述程式碼編譯成當前工作目錄中名為sum的可執行檔案,請將**-o**開關與**gcc**一起使用:
$ gcc sum.c -o sum
要使用**ccache**命令,請使用以下命令:
$ ccache gcc sum.c -o sum
要執行二進位制命令,請使用以下命令:
$ ./sum
示例輸出應該類似於:
$ ./sum Enter two numbers to add: 24 54 The sum of equals 78
恭喜!現在,您已經知道“如何在Ubuntu中安裝C、C++編譯器和開發工具”。我們將在下一篇文章中學習更多關於這些命令型別的知識。繼續關注!
廣告