[リストへもどる]
一括表示
タイトルうまくコンパイルが,できない・・・・・・
記事No1266
投稿日: 2003/10/23(Thu) 07:57
投稿者ken1
はじめまして,ken1といいます。
以下の質問をさせってもらいます。
よろしくお願いします。

環境
CPU:アスロン1G
OS:WIN98SE
コンパイラ:Borland C++ 5.5
(きちんとコンパイラができて,ハローワールドと表示します。)

上記の環境に、BCC.exeが置いてあるフォルダーに,
NASMWとNDISASMWをコピー。
PETIT312を、解凍してすべてのファイルを,
シフトJISコードに変換。
DOSプロンプトを,立ち上げてPETIT312\WINに移動して,
make -f Makefile.bccとしてコンパイルすると,
以下のようなエラーが出て,コンパイルが止まってしまいします。

nasmw -i..\engine\i386\ -f obj -DWIN32 -D__BORLANDC__ ..\engine\i386\cpua.nas -o cpua.obj
fixu32.exe -u -padding16 cpua.obj
nasmw -i..\engine\i386\ -f obj -DWIN32 -D__BORLANDC__ ..\engine\i386\choose_table.nas -o choose_table.obj
fixu32.exe -u -padding16 choose_table.obj
nasmw -i..\engine\i386\ -f obj -DWIN32 -D__BORLANDC__ ..\engine\i386\quantizea.nas -o quantizea.obj

** error 1 ** deleting quantizea.obj

確か,オブジェクトファイルは,コンパイラの課程でできるファイルだと記憶いているのでうが・・・・・・
なので、quantizea.objがない,削除されているというのはおかしいと思うのですが。

それでは,よろしくお願いします。

タイトルRe: うまくコンパイルが,できない・・・・・・
記事No1268
投稿日: 2003/10/23(Thu) 12:00
投稿者   <kei-i@sams.co.jp>
ええと、一応、確認なのですが、お使いの nasmw はどこから入手なさったもの
でしょうか?午後3.xxのコンパイルは、SSE2 用命令をコンパイルするために、
SSE2 パッチを当てた nasm が必要です。例えば、うるりさんのところから入手
できます。
http://ww1.tiki.ne.jp/~hino/nasmw098_sse2.zip

ちなみに、そのエラーメッセージは、quatuzea.obj を削除中ということです。
borland の make だと、make 途中でエラーになった後に、その時に作成中だっ
たファイルを消す際に同様のメッセージが出ます。今回はおそらく以下のような
感じと思われます。
・nasmw が quatuzea.obj を作成するためのコンパイルに失敗してエラーを返し

・quatuzea.obj の残骸(正しくないobjファイル)が残ってるとまずいので、make
が quatuzea.obj を削除した

タイトルRe^2: うまくコンパイルが,できない・・・・・・
記事No1270
投稿日: 2003/10/24(Fri) 07:22
投稿者ken1
はじめまして計さん、質問に答えていただき有難う御座います。
ご指摘の点を,確認してみたのですが,
nasmwのバージョンは同じ物を,使っています。
ねんのため,指定されたところから落としてきたものと変えて、
ためしてみましたが,同じエラーが出てしまいます。
ひきつづき、アドバイスよろしくお願いします。

PS:エラーメッセージについての疑問にまで,
   答えて頂き有難う御座いました。

タイトルRe^3: うまくコンパイルが,できない・・・・・・
記事No1272
投稿日: 2003/10/27(Mon) 09:29
投稿者   <kei-i@sams.co.jp>
ええと、nasmwのバージョンがあってるとなると、更に確認なのですが、別バー
ジョンの nasmw がどこかのディクレトリにあって、PATH の関係で別バージョン
の nasmw が呼ばれているということはないでしょうか?

何故、ここにこだわるかというと、sse2 非対応 nasmw を使って
make -f makefile.bcc すると、コンパイルの順番の関係で、quantizea.obj の
作成でエラーになるんです。

ちなみに、その時のエラーメッセージは、どの nasmw を使っているかによって
微妙に違いますが、たまたま手元にある sse2 非対応 nasmw だと
(http://www.kernel.org/pub/software/devel/nasm/binaries/win32/から入手)、
以下のようなエラーになります。

> ..\engine\i386\quantizea.nas:206: parser: instruction expected
> ..\engine\i386\quantizea.nas:207: symbol `cvttps2dq' redefined
> ..\engine\i386\quantizea.nas:207: parser: instruction expected
> ..\engine\i386\quantizea.nas:228: symbol `cvttps2dq' redefined
> ..\engine\i386\quantizea.nas:228: parser: instruction expected
> ..\engine\i386\quantizea.nas:229: symbol `cvttps2dq' redefined
> ..\engine\i386\quantizea.nas:229: parser: instruction expected
> ..\engine\i386\quantizea.nas:230: symbol `cvttps2dq' redefined
> ..\engine\i386\quantizea.nas:230: parser: instruction expected
> ..\engine\i386\quantizea.nas:231: symbol `cvttps2dq' redefined
> ..\engine\i386\quantizea.nas:231: parser: instruction expected