[リストへもどる]
一括表示
タイトルThis compiler can't use SSE/SSE2! の警告メッセージについて
記事No1237
投稿日: 2003/09/29(Mon) 11:49
投稿者高橋
 はじめまして。高橋と申します。

 コンソール版gogo.exeをフリーで配布されているBCC5.51でコンパイルしたの
ですが、起動する度に
This compiler can't use SSE/SSE2!
の表示が出ます。この表示を出ないようにするか、あるいはSSE対応にする方法
がありましたらご教示ください。

 プログラミングやコンパイルについては全くの素人で、.cファイルと.objファ
イルの違いや役割もわかっていない状態です。MS-DOS時代からのPCユーザではあ
るので、コマンドライン操作や環境変数等についてはある程度わかっていると思
います。

 ウェブ上にあった情報を頼りに私が行った「コンパイル」の手順は、まず
http://homepage1.nifty.com/herumi/soft.html
から「ver. 3.11p1のソースファイル一式」とNASMの「修正ソースとWindows用バ
イナリ」をダウンロードしました(最初、NASMだけで「コンパイル」できるもの
と思っていました)。

 そして、
http://www.borland.co.jp/cppbuilder/freecompiler/
から、freecommandlinetools2.exeをダウンロードして、
http://www9.plala.or.jp/sgwr-t/DrillSeminarC/comoption.html
に従ってbcc32.cfgとilink32.cfgを作りました。

 nasmw098_sse2.zipからは、.exeファイルだけを取り出して、
C:\borland\bcc55\Binにコピーしました。

 petit311p1.tgzを展開しwinディレクトリへ行って、
make -f Makefile.bcc
としたところ、エラーは出ずにgogo.exe(とfixu32.exe)ができました。

 この掲示板を少し拝読したのですが、SSEが使えないのはbccのlinker(?)のせ
いなのですね? その問題を回避する方法が書かれていたように思うのですが、
私のところではうまくいきません(書かれたとおりのことができているか自体が
とても怪しいです)。

 SSEというのは、gogo.exeを高速にするための仕組みでしょうか? もしそう
であれば、そして、どうしてもbccでは無理ということなら、SSEは使えなくても
いいかなと考えています。使えたほうがおもしろいとは思うのですが……。

 もし使えないのであれば、起動するときの"This compiler can't use
SSE/SSE2!"の表示を抑制する方法はないでしょうか? 起動の度にこの表示が出
るので、少しうるさく感じています。

 なお、まだ少ししか試していないのですが、作られたgogo.exeでwavファイル
からmp3ファイルへの変換は問題なくできているみたいです。

 以上、初心者な質問で申しわけありませんが、ご助言いただけたら幸いです。
よろしくお願いいたします。

タイトルRe: This compiler can't use SSE/SSE2! の警告メッセージについて
記事No1238
投稿日: 2003/09/29(Mon) 17:46
投稿者フロート
参照先http://members.at.infoseek.co.jp/y_float/
昔同じようなことで質問した記憶があるので還元の意味を込めて。
# 私は Hello World! から先に進んでいない人種ですが(汗)


> This compiler can't use SSE/SSE2!
> この表示を出ないようにするか、あるいはSSE対応にする方法がありましたらご教示ください。

Makefile.bcc の 122 行目を以下のように置き換えて対策出来ないでしょうか。

書き換え前 : $(LD) $(LDFLAGS) $(AOBJS) $(COBJS) $(LIBSNDCOBJS) c0x32.obj, $(TARGET),, (後略)
書き換え後 : $(LD) $(LDFLAGS) c0x32.obj $(AOBJS) $(COBJS) $(LIBSNDCOBJS), $(TARGET),, (後略)

変更後、make を実行。
SSE 命令もちゃんと使ってくれているみたいです。
# これは私なりの対策です。環境によって c0x32.obj の位置は違うかもしれないです。

これで上手く行かないようなら、ご自分ではどのような対策を取られたのか書くと
有意なレスがつきやすくなるかと思います。


SSE については、google などで、「SSEとは」「ストリーミングSIMD拡張命令とは」などとして
検索してみてはどうでしょう。



余談ですけど、私は午後のコンパイルにこれを使っています。
http://sourceforge.net/project/showfiles.php?group_id=2435

# インストール後、mingw32-make.exe を make.exe にリネームして、
# nasmw.exe を放り込んで、%PATH% を通して、make -f makefile.mingw するだけ。

タイトルRe^2: This compiler can't use SSE/SSE2! の警告メッセージについて
記事No1240
投稿日: 2003/09/30(Tue) 18:06
投稿者へるみ
サポートありがとうございます。
> Makefile.bcc の 122 行目を以下のように置き換えて対策出来ないでしょうか。

本当ですね。私のところでもフロートさんのとおりにすればうまく行きました。確か昔fixu32.exeを組み込んだときは今のmakefileでいいようにしていたつもりなんですが、微妙にサイズが変わっちゃったのかな。

タイトルRe^2: This compiler can't use SSE/SSE2! の警告メッセージについて
記事No1241
投稿日: 2003/09/30(Tue) 22:13
投稿者高橋
フロートさん

 丁寧なご返信をありがとうございました。

> Makefile.bcc の 122 行目を以下のように置き換えて対策出来ないでしょうか。

 これでうまくいきました! 昨日の質問をポストする前に、この掲示板に以前
書かれていた方法をいくつか試したのですが、いろいろやっているうちに、
Makefile.bccの他の部分も触ってしまっていたようです。

> SSE については、google などで、「SSEとは」「ストリーミングSIMD拡張命令とは」などとして
> 検索してみてはどうでしょう。

 実は、少し検索してみていたのですが、解説自体の意味がさっぱりわからなかっ
たので、「たぶん高速化のための仕組みみたいなものかな」と勝手に解釈してい
ました。機会を見て勉強しようと思います。

> 余談ですけど、私は午後のコンパイルにこれを使っています。
>
> http://sourceforge.net/project/showfiles.php?group_id=2435
>
> # インストール後、mingw32-make.exe を make.exe にリネームして、
> # nasmw.exe を放り込んで、%PATH% を通して、make -f makefile.mingw するだけ。

 ありがとうございます! おもしろそうだったので、ダウンロードして試して
みました。

 でも、私のところではエラーになります。

 まず、makecfg.exeを実行するところ(?)で「コマンドが違う」と言われてしまっ
たので、Makefile.mingwの中のコメントを参考に、
MAKECFG = ./makecfg.exe を
MAKECFG = makecfg.exe に書き換えました。

 すると、このコマンドは実行されたようなのですが、今度は「global.cfgが作
れない」と言われてしまいました。

 それで、winディレクトリにできていたmakecfg.exeを手動で実行して
engine\i386ディレクトリにglobal.cfgという名前で結果をリダイレクトし、最
初からmakeを動かしてみたら、警告は山ほど出ていたのですが、なぜかgogo.exe
はできました。(全く見当はずれなことをやっているでしょうか。)

 できたexeファイルは、BCCで作ったものより40KBぐらい大きいのですが、
「SSEが使えない」の警告も出ないし、mp3変換もできてしまう気配です。

 makefile.mingw中の
GCC2953 = yes
を有効にしても、同じところで同じようなエラーになりました。

 フロートさんのところでは、makefile.mingwを全く書き換えずにコンパイルで
きたでしょうか?

 いただいたご助言のおかげでBCCでコンパイルしたgogo.exeができたので、問
題自体は解決しているのですが、mingwのことがなんとなく気持ち悪くて気にな
ります。

 もし無理でなかったら、どうしてこちらではエラーになるのか、解決法やそれ
を調べる手がかり等、教えていただけたらうれしいです。

タイトルRe^3: This compiler can't use SSE/SSE2! の警告メッセージについて
記事No1242
投稿日: 2003/10/01(Wed) 15:12
投稿者フロート
参照先http://members.at.infoseek.co.jp/y_float/
> フロートさんのところでは、makefile.mingwを
> 全く書き換えずにコンパイルできたでしょうか?

すみません。余談のつもりだったので、詳細を省いてしまいました(^^;;;

OS は Windows 98/Me ですよね?
先に紹介した MinGW-3.1.0-1 を使用した場合、
Makefile.mingw で修正する場所は次の三箇所です。

16 行目
修正前 : #GCC2953 = yes
修正後 : GCC2953 = yes

24 行目
修正前 : MAKECFG = ./makecfg.exe
修正後 : MAKECFG = makecfg.exe

25 行目
修正前 : GLOBALCFG = ../engine/i386/global.cfg
修正後 : GLOBALCFG = ..\engine\i386\global.cfg

# Windows 2000/XP なら、25 行目の修正はしなくても良い(修正しても問題ない)

これで、make -f makefile.mingw とすれば、
無事に gogo.exe が出来上がるはずです。

タイトルRe^4: This compiler can't use SSE/SSE2! の警告メッセージについて
記事No1243
投稿日: 2003/10/01(Wed) 21:13
投稿者高橋
フロートさん

 余談に過剰反応してしまって申しわけなかったです。

> OS は Windows 98/Me ですよね?

 はい、98SEです。

> 先に紹介した MinGW-3.1.0-1 を使用した場合、
> Makefile.mingw で修正する場所は次の三箇所です。

 これでエラーにならずにコンパイルできました!

 BCCで作ったものとサイズは明らかに違うのですが、ほかにも速度等、きっと
少しずつ違っているのでしょうね。

 今回は、稚拙な質問にご親切にお答えくださり、ほんとうにありがとうござい
ました。