[リストへもどる]
一括表示
タイトルRe:[260][262]
記事No263
投稿日: 2002/03/10(Sun) 17:30
投稿者フロート
arumihsoyさん、計さん、アドバイスありがとうございます。
マリンキャットのソースに対し、下記の変更を行ったところ、
EXEおよび午後べんちで動作するDLLが生成されました。
SSEも認識してくれました。
へるみさんのところのソースもSSEを認識しました。

一応変更した部分を全て書いておきます。

マリンキャットのソース
--------------------------------------------------------------------------------

Makefile.bccの変更箇所
45行目付近
修正前
>gogo_io.obj \
>thread.obj

修正後
>gogo_io.obj \
>thread.obj \
>setup.obj

--------------------------------------------------------------------------------

Makefile_dll.bccの変更箇所
50行目付近
修正前
>dllinst.obj \
>vbapi.obj
># main.obj

修正後
>dllinst.obj \
>vbapi.obj \
>setup.obj
># main.obj

121行目
修正前
>$(LD) $(LDFLAGS) $(AOBJS) $(COBJS) $(LIBSNDCOBJS) c0d32.obj , $(TARGET),, import32.lib cw32mt.lib $(LIBS), gogo_dll_bcc.def

修正後
>$(LD) $(LDFLAGS) $(COBJS) $(AOBJS) $(LIBSNDCOBJS) c0d32.obj , $(TARGET),, import32.lib cw32mt.lib $(LIBS), gogo_dll_bcc.def


--------------------------------------------------------------------------------

Makefile.mingwの変更箇所

55行目付近
修正前
>quantize.o \
>tool.o vbrtag.o \
>main.o gogo_io.o

修正後
>quantize.o \
>tool.o vbrtag.o \
>main.o gogo_io.o setup.o

--------------------------------------------------------------------------------

Makefile_dll.mingwの変更箇所
57行目付近
修正前
>vbapi.o \
>dllinst.o

修正後
>vbapi.o \
>dllinst.o \
>setup.o

--------------------------------------------------------------------------------

へるみさんのところのソース
--------------------------------------------------------------------------------
Makefile_dll.bccの変更箇所
81行目
修正前
>$(LD) $(LDFLAGS) $(AOBJS) $(COBJS) c0d32.obj, $(TARGET),, import32.lib cw32mt.lib $(LIBS), gogo_dll_bcc.def

修正後
>$(LD) $(LDFLAGS) c0d32.obj $(AOBJS) $(COBJS), $(TARGET),, import32.lib cw32mt.lib $(LIBS), gogo_dll_bcc.def

--------------------------------------------------------------------------------

タイトル
記事No264
投稿日: 2002/03/12(Tue) 03:08
投稿者PEN@海猫
> 一応変更した部分を全て書いておきます。

ご迷惑をおかけしました。
昨日、問題の個所を修正したバージョンをアップロードしなおしましたので、
これでコンパイルは通るかと思われます。
ただし、BCCのSSE対応に関しては…思うところがあり
修正は施していません。Linkerの問題がイタイ…

SSEが有効にならない場合、以下の個所に次のように書き加えて
再コンパイルすることで 問題が解消する場合があります。

(makefile.bcc)
$(TARGET): $(COBJS) $(AOBJS) $(LIBSNDCOBJS) fixu32.exe
    $(FIXED_ALIGN) c0x32.obj    <- 追加
    $(LD) $(LDFLAGS) $(AOBJS) $(COBJS) $(LIBSNDCOBJS) c0x32.obj, $(TARGET),, import32.lib cw32mt.lib $(LIBS)

(makefile_dll.bcc)
$(TARGET): $(COBJS) $(AOBJS) $(LIBSNDCOBJS) gogo_dll_bcc.def fixu32.exe
    $(FIXED_ALIGN) c0d32.obj    <- 追加
    $(LD) $(LDFLAGS) $(AOBJS) $(COBJS) $(LIBSNDCOBJS) c0d32.obj , $(TARGET),, import32.lib cw32mt.lib $(LIBS), gogo_dll_bcc.def


タイトル
記事No266
投稿日: 2002/03/12(Tue) 12:31
投稿者フロート
>昨日、問題の個所を修正したバージョンをアップロードしなおしましたので、
>これでコンパイルは通るかと思われます。
早速ダウンロードいたしました。
MinGW、BCCどちらもコンパイルに成功しました。

Makefile.bccはそのままではSSEを認識しなかったので、
次のように書き換えました。

--------------------------------------------------------------------------------

#Makefile.bccの118行目
変更前
>$(LD) $(LDFLAGS) $(AOBJS) $(COBJS) $(LIBSNDCOBJS) c0x32.obj,(後略)

変更後
>$(LD) $(LDFLAGS) $(COBJS) $(AOBJS) $(LIBSNDCOBJS) c0x32.obj,(後略)

--------------------------------------------------------------------------------

これでSSEを認識するようになりました。
なお、DLLのほうは、変更無しでそのままSSEを認識してくれました。

>SSEが有効にならない場合、以下の個所に次のように書き加えて
>再コンパイルすることで 問題が解消する場合があります。
実際に試しましたが、エラーが発生するようです(少なくとも私の環境では)。

<エラーメッセージ>
fixu32.exe -u -padding16 c0x32.obj
Can't load c0x32.obj
※exe、dllともに発生します。

タイトル
記事No267
投稿日: 2002/03/12(Tue) 13:01
投稿者
> >SSEが有効にならない場合、以下の個所に次のように書き加えて
> >再コンパイルすることで 問題が解消する場合があります。
> 実際に試しましたが、エラーが発生するようです(少なくとも私の環境では)。
>
> <エラーメッセージ>
> fixu32.exe -u -padding16 c0x32.obj
> Can't load c0x32.obj
> ※exe、dllともに発生します。

ああ,すいません,bcc のどっかにある(たいていは,bcc をインストールした
ディレクトリの下の lib ディレクトリにあると思う) c0x32.obj と c0d32.obj
を petit の win ディレクトリにコピーしてからやってください.


タイトル
記事No268
投稿日: 2002/03/12(Tue) 15:04
投稿者フロート
たびたびすみません。ご迷惑をおかけしております。

>c0x32.obj と c0d32.obj を petit の win ディレクトリにコピー
あ、やはり(汗)
しかし、そうするとEXEは生成されたのですが、
gogo [Enter] で下のメッセージが出ます。

** WARNING ** This compiler can't use SSE/SSE2!

念のため fixu32.exe -u -padding16 c0x32.obj
としてみましたが同様です。

実際にエンコードする際も、

(前略)
extended instruction - MMX EMMX CMOV
enabled extended instruction - MMX EMMX CMOV
(後略)

と出ますので、SSEは無効のようです。

なお、下記[266]の変更は[197]および[201]の内容を参考にしています。
これで問題は無いようですが・・・・。