TopCoderと同バージョンのgcc環境をVMware上で構築
競技プログラミングTopCoderのコンテストで用いられるC++コンパイル環境と同等の環境を、VMware上で構築した方法のメモです。2013年4月現在の情報です。
通常のAlgorithm SRM(Single Round Match)やAlgorithm MM(Marathon Match)のコンテストに参加する場合、あえてここに記載するように環境を構築する必要はありません。
ただし、実行速度の向上を目的とする一部のMarathon Matchで、コンパイラの生成するアセンブリコードを確認したい場合などでは、この手順で、TopCoderの環境と同バージョンのgccを利用できるようになります。
なお、TopCoderのC++コンパイラはこちらに記載の通り、以下のようになっています。
gcc 4.0.2 (RedHat EL 4)
追記: コンテスト後の議論を確認したところ、TopCoderは64ビット環境ではなく32ビット環境のようです。ですので、以下の情報は正しくありません。いずれにしても、他の競技者の方もgccのバージョンで苦労されていたようですので、バージョンは合わせておくに越したことはないでしょう。
以下、構築手順を示します。
- CentOS 4.8 x86_64 のVMware用イメージを適当に探してきてダウンロードします。(CentOS 4.3が入手可能な場合は、そちらを利用したほうがよいでしょう。) http://heiserz.com/2012/09/07/centos-vmware-images/
- VMwareに仮想マシンを追加して起動します。なおこの際、イメージをコピーしたか移動したか聞かれるので、「移動」と答えます。(「コピー」にすると仮想マシンのMACアドレスが変更される関係上、面倒なことになります。)
- passwdを適当に設定します。
- service iptables stop; chkconfig iptables offでファイアウォールを停止します。
- ifconfigでIPアドレスを確認し、ホストOS側からPuTTY等のSSHクライアントで仮想マシンに接続します。
- /etc/yum.repos.d/CentOS-Base.repo を編集します。(この設定ファイルに元から設定されているレポジトリは、もはや提供されていません。公式の過去バージョンレポジトリは、 http://vault.centos.org/ ですが、yumからのアクセスに失敗することが多いので、適当なミラーに設定します。)
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&rep
o=os
baseurl=http://mirror.hmc.edu/centos/4.8/os/$basearch/
gpgkey=http://mirror.hmc.edu/centos/RPM-GPG-KEY-centos4
#他も同様に修正
- gcc 4と関連RPMをインストールします。(ここで、TopCoderより新しいバージョンのgcc 4がインストールされてしまいます)
# yum install gcc4 gcc4-c++
- TopCoderと同じバージョンのgcc 4をインストールしなおします。
# wget http://vault.centos.org/4.3/os/x86_64/CentOS/RPMS/gcc4-4.0.2-14.EL4.x86_64.rpm
# wget http://vault.centos.org/4.3/os/x86_64/CentOS/RPMS/gcc4-c++-4.0.2-14.EL4.x86_64.rpm
# rpm -ivh gcc4-4.0.2-14.EL4.x86_64.rpm
# rpm -ivh gcc4-c++-4.0.2-14.EL4.x86_64.rpm
思い出しながら書いたので、手順に間違いがあるかもしれません。
Author And Source
この問題について(TopCoderと同バージョンのgcc環境をVMware上で構築), 我々は、より多くの情報をここで見つけました https://qiita.com/data9824/items/51d98ef23be13123fa40著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .