Ubuntu下C/C++プログラミングテクニック抜粋


code::blocksとVisual C++の類似性のため、簡単に手に入ることができて、本博文は主にUbuntuの下でcode::blocks符号化の技巧を使うことを抜粋して、その他のIDEはしばらく討論しません.
インストールcode::blocks
sudo apt-get install build-essential
sudo apt install codeblocks
sudo apt-get install codeblocks-contrib(このパッケージをインストールしないとincrementalsearchなど多くの機能がない可能性があります)
sudo apt install libboost-all-dev(boostパッケージをインストールするには必須ではありません)
gmpのインストール
sudo apt-get install libgmp10 libgmp-dev
sudo apt-get install libgmpxx4ldbl-dbgsym
sudo apt-get install libgmp10-dbgsym
情報:
https://launchpad.net/ubuntu/+source/gmp
gmp package in Ubuntu
libgmp-dev: Multiprecision arithmetic library developers tools libgmp10: Multiprecision arithmetic library libgmp10-dbgsym: debug symbols for package libgmp10 libgmp10-doc: Multiprecision arithmetic library example code libgmp3-dev: Multiprecision arithmetic library developers tools libgmpxx4ldbl: Multiprecision arithmetic library (C++ bindings) libgmpxx4ldbl-dbgsym: debug symbols for package libgmpxx4ldbl
code::blocksで他人のソースコードを使用する
コードをプロジェクトディレクトリにコピーし、他人コードのincludeのヘッダファイルのパスを変更しないようにproject→build option→search directoriesでプロジェクトの絶対パスを増やすことができます.
code::blocksでgmpおよびその他の静的ライブラリを使用する
Project→build option→linker settingsをlibgmpxxとlibgmp(静的ライブラリの名前)に追加し、debugとreleaseの両方で追加する必要がある場合があります.
ライブラリの紹介
名前
位置
ライブラリ名
gmp
 
libgmpxx、libgmp
boost::program_options
/usr/lib/x86_64-linux-gnu
libboost_program_options
zlib
/usr/lib/x86_64-linux-gnu
libz
インストールcmake
准备:官网下载cmake-3.6.3.tar.gz(https://cmake.org/download/)
1.ファイルtar-xvf cmake-3.6を解凍する.3.tar.gzは、ファイル権限chmod-R 777 cmake-3.6を変更する.3
2.gccとg++がインストールされているかどうかを検出し、それがない場合はgcc-g+:sudo apt-get install build-essentialをインストールする必要があります(または、この2つのコマンドsudo apt-get install gcc、sudo apt-get install g++)
3.cmake-3.6に入る.3コマンドcd cmake-3.6に進む.3
4.sudo./を実行bootstrap
5.sudo makeの実行
6.sudo make installの実行
7.cmake–versionを実行し、cmakeバージョン情報を返すと、インストールに成功したことを示します.
code::blocksでC++11を使用
プロジェクト→build option→compiler settings→compiler flags have g++follow C++11 ISO C++language standard
システムステータスの取得
sysinfo関数を使用して、次のように使用します.
#include 

double Free_Memo_Ratio()
{
    struct sysinfo info;
    sysinfo(&info);
    return 1.0 * info.freeram / info.totalram;
}

valgrindを使用してメモリの漏洩を確認する
メモリオーバーフローは、vectorがスペースを申請できない、メモリエラーを解放するなど、奇妙なエラーを引き起こします.
コマンドの例1:
valgrind --leak-check=full --show-leak-kinds=all --track-fds=yes bin/Debug/program
ここで、–leak-check=fullとは、メモリの漏洩を完全にチェックすることであり、ReleaseではなくDebugでエラー位置をよりよく表示できることに注意してください.
コマンド例2:
valgrind --leak-check=full --show-leak-kinds=all --track-fds=yes bin/Debug/program
コマンド例3:
valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes    ./program
ここで、–show-reachable=yesはすべてのメモリ状況を表示し、–trace-children=yesはフォローアップサブプロセスです.
GDBによるデバッグ
1.開始:gdbプログラム名
2.パラメータ付き:runパラメータ
3.ブレークポイントの設定:breakブレークポイント情報
4.デバッグ:continueはブレークポイントまで実行し、nextは一歩もサブ関数に入らず、stepは一歩もサブ関数を実行する