mingwで gcc3/gcc4

Last-modified: 2012-08-14 (火) 22:17:23
$ mingw-get install gcc-v3-core
$ mingw-get install gcc-v3-g++

とすると gcc3 をインストールできる。こうすると gcc, g++ は ver3.4.5 になる。
デフォルトの gcc, g++ を ver4 にするにはいったん gcc, g++ を remove して再インストールすればよい。

$ mingw-get remove gcc
$ mingw-get remove g++
$ mingw-get install gcc
$ mingw-get install g++

ただし、こうしてしまうと、せっかく入れたgcc3 を使えなくなってしまう。
実は gcc3 は/mingw/bin/mingw32-gcc-3.4.5 として残っているので、リンクを張ればよい。

$ ln -s /mingw/bin/mingw32-gcc-3.4.5 /mingw/bin/gcc3

それに対し、なぜかg++, c++ は別名 mingw32-g++-3.4.5 がつくられず、g++, c++ だけである。
なので、

$ mv /mingw/bin/g++ /mingw/bin/mingw32-g++-3.4.5
$ ln -s /mingw/bin/mingw32-g++-3.4.5 /mingw/bin/g++3
$ mv /mingw/bin/c++ /mingw/bin/mingw32-c++-3.4.5
$ ln -s /mingw/bin/mingw32-c++-3.4.5 /mingw/bin/c++3

とすればよい。この作業を行ったうえで、gcc3 --> gcc4 の更新をすれば、デフォルトの gcc, g++ のバージョンが 4 にあがる。ver3 を使う場合は、gcc3, g++3 をコマンドとして使えばよい。

Werror

Either fix it, or if the package is built with -Werror, add as a workaround: -Wno-error=unused-but-set-variable

$ mkdir build_insight
$ cd build_insight
$ ../insight-src/configure
$ make CFLAGS="Wno-error=unused-but-set-variable" 2>&1 | tee make.log

In GCC, you can turn off all sign conversion warnings with the -Wno-sign-conversion flag. There is also -Wno-sign-compare (for stuff like 2u > 1) but it won't be relevant unless you use -Wextra.