LoginSignup
1
1

More than 5 years have passed since last update.

TopCoderと同バージョンのgcc環境をVMware上で構築

Last updated at Posted at 2013-05-06

競技プログラミング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からのアクセスに失敗することが多いので、適当なミラーに設定します。)
/etc/yum.repos.d/CentOS-Base.repo
#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

思い出しながら書いたので、手順に間違いがあるかもしれません。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1