VisualStudioでは、コンパイル&リンクしたコード(ビルドしたコード)をC/C++のランタイムをスタティックリンクするかダイナミックリンクするかの指定が、コード生成の部分でできる。exeを持ってきてそのまま動く、ということをさせるにはスタティックリンクで作成し、配布した方が楽です。
同じことが gcc (linux)の世界ではどうなのだろうと調査してみたところ、C/C++のランタイムをスタティックにリンクする方法があるとのことでした。しばらくはこれについて調べてみようと思います。ただlinuxにおいてはglibc,stdc++の .so (共有ライブラリ)がすでにインストールされていることがとても多いので、特定のバージョンのCRTを使うということさえなければ、共有ライブラリを使うタイプでコンパイルしておいて問題はなさそうに思います。
スタティックリンク/ダイナミックリンクに関するビルド時のキーワード。オプションとか。
- -static-libstdc++
- -shared-libgcc, -static-libgcc
これらを手元のUbuntu で試してみようと思います。次回へ続く。