2011-03-07 15 views
0

私のMFCアプリケーションでは、アレイ内の.wavデータをogg vorbis形式に変換する必要があります。私のプロジェクトにogg vorbisエンコーディングを追加する

liboggとlibvorbisの両方を静的ライブラリとしてコンパイルしました。私は自分のプロジェクトフォルダに "bin"ディレクトリを作成し、そこにlibvorbis_static.libとlibvorbisfile_static.libを配置しました。また、binディレクトリのlibvorbisフォルダとインクルードフォルダを作成し、vorbis(codec.h、vorbisfile.h、vorbisenc.h)とogg(os_types.hとogg.h)フォルダを配置しました。私はlibvorbis_static.libを私のプロジェクトとbinフォルダの追加の依存関係に追加ライブラリディレクトリに追加しました。私がコンパイルしようとしているときに

、私はエラーを取得:

1>libvorbis_static.lib(info.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 

1>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _free already defined in libcmtd.lib(dbgfree.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _calloc already defined in libcmtd.lib(dbgcalloc.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _malloc already defined in libcmtd.lib(dbgmalloc.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _realloc already defined in libcmtd.lib(dbgrealloc.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _memmove already defined in libcmtd.lib(memmove.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _ldexp already defined in libcmtd.lib(_ldexp_.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _qsort already defined in libcmtd.lib(qsort.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _ceil already defined in libcmtd.lib(_ceil_pentium4_.obj) 

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _exit already defined in libcmtd.lib(crt0dat.obj) 

1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" ([email protected]@[email protected]@@Z) already defined in libcmtd.lib(typinfo.obj) 

1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" ([email protected]@[email protected]@@Z) already defined in libcmtd.lib(typinfo.obj) 

1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 

1>BookDoc.obj : error LNK2001: unresolved external symbol _ogg_stream_clear 

1>BookDoc.obj : error LNK2001: unresolved external symbol _ogg_page_eos 

1>BookDoc.obj : error LNK2001: unresolved external symbol _ogg_stream_pageout 

1>BookDoc.obj : error LNK2001: unresolved external symbol _ogg_stream_flush 

1>BookDoc.obj : error LNK2001: unresolved external symbol _ogg_stream_packetin 

1>BookDoc.obj : error LNK2001: unresolved external symbol _ogg_stream_init 

1>libvorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol _oggpack_readinit 

1>libvorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol _oggpack_bytes 

1>libvorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol _oggpack_writeclear 

1>libvorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol _oggpack_read 

1>libvorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol _oggpack_reset 

1>libvorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol _oggpack_write 

1>libvorbis_static.lib(info.obj) : error LNK2001: unresolved external symbol _oggpack_writeinit 

1>libvorbis_static.lib(bitrate.obj) : error LNK2001: unresolved external symbol _oggpack_writetrunc 

1>libvorbis_static.lib(bitrate.obj) : error LNK2001: unresolved external symbol _oggpack_get_buffer 

1>libvorbis_static.lib(codebook.obj) : error LNK2001: unresolved external symbol _oggpack_adv 

1>libvorbis_static.lib(codebook.obj) : error LNK2001: unresolved external symbol _oggpack_look 

1>.\Debug/Book.exe : fatal error LNK1120: 17 unresolved externals 

私は混乱しています。助けてもらえますか?おかげさまで

+0

これは以前の質問とどのように違うのですか:http://stackoverflow.com/questions/5186558/problem-encoding-wav-into-ogg-vorbis? –

答えて

0

LINK:警告LNK4098:DEFAULTLIB他のLIBSを用いた「MSVCRT葛藤。使用/ NODEFAULTLIB:ライブラリ

それは、これはあなたが同じプログラム内のC STDLIBとMFCのC STDLIBの両方を試してみて、リンクするとき、あなたが得るものです、オルビスとは何の関係もいません - ちょうど、コンパイラがあなたに伝え何を。 または、libcmt/dを無視するように設定してください

0

ogg-vorbisをコンパイルしたc-runtimeを確認してください。静的にリンクしている場合は、アプリと一致する必要があります。

vorbisをDLLにコンパイルした場合は、別々のcランタイムを使用できます(vorbis DLLによって割り当てられたメモリがそのDLLによって常に解放され、c-only APIの場合)。

関連する問題