CentOS Linux 7 自行編譯與安裝 GCC 6 編譯器教學

這裡介紹在 CentOS Linux 7 之下自己載 gcc 6 編譯器原始碼、編譯與安裝的過程。 gcc 是 Linux 系統上最常被使用的編譯器,而 CentOS Linux 7.2 中的 gcc 版本比較舊: gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux Thread model: posix gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 如果想要使用比較新的功能,就會有問題。以下是自己下載 gcc 6.3.0 原始碼來編譯與安裝的過程。 ...

February 25, 2017 · G. T. Wang

C++ 程式語言 auto 自動變數類型語法教學與範例

這裡介紹 C++ 語言的 auto 自動變數類型的用法,並提供幾種使用範例程式碼。 在 C++14 標準跟前一版的 C++11 比較起來沒有太大的變革,大概都是改善舊的語法,讓程式設計者更方便使用,這裡我將介紹 auto 這個 C++11 所新增的自動變數類型,以及在 C++14 中的變革。 ...

February 23, 2017 · G. T. Wang

樹莓派 Raspberry Pi 自行編譯與安裝 GCC 6 編譯器教學

這裡介紹在樹莓派中自行編譯與安裝 gcc 6 編譯器的步驟。 目前樹莓派的 Raspbian Linux 作業系統內建的 gcc 版本為 4.9.2: gcc --version gcc (Raspbian 4.9.2-10) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 如果需要更新版的 gcc 編譯器,就只能自己編譯了,以下是下載 gcc 編譯器原始碼,自行編譯與安裝的過程。 ...

February 21, 2017 · G. T. Wang

使用 gcc 自製 C/C++ 靜態、共享與動態載入函式庫教學

這裡介紹如何使用 gcc 編譯器自己製作 C/C++ 靜態、共享與動態載入函式庫,讓程式碼可以更方便的重複使用。 在開發不同的程式時,如果有一些程式碼是重複會用到的話,就可以將其製作成獨立的函式庫,不僅維護上更方便,也可以方便其他專案或是開發者使用,以下介紹以 gcc 還有 ar 等工具製作靜態、共享與動態載入函式庫的步驟。 ...

February 3, 2017 · G. T. Wang

C/C++ 程式語言的箭頭 --> 運算子?

最近看到網路論壇中有人在討論 C/C++ 程式語言有趣的箭頭 --> 運算子,跟大家分享一下。 這是很簡單的 C 語言 while 迴圈: #include <stdio.h> int main() { int x = 10; while (x --> 0) { // x 遞減至 0 printf("%d ", x); } } 這個程式碼的邏輯很簡單,就是讓 x 逐步遞減至 0,不過 while 的判斷式在乍看之下有些奇怪,正常的 C 語言似乎沒有 x --> 0 這種箭頭的運算子,但是這個程式卻可以正常執行。 ...

February 2, 2017 · G. T. Wang