2011-08-22 7 views
0

MS-s波形APIを利用したプログラムと何らかのリンクエラーが発生しました。私が使用しているコードは、ここにあります:http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=4422&lngWId=3 「サウンドデバイスを開く」という見出しのページの最初のコードです。私はコードに何の誤りもありませんが、私のリンカーはかなり執拗に不平を言っています。出力は次の通りです:波形APIリンクエラー

d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\crt2.o:crt1.c|| undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\crt2.o:crt1.c|| undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\crtbegin.o:cygming-crtbegin.c|| undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\crtbegin.o:cygming-crtbegin.c|| undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\libmingw32.a(pseudo-reloc.o):pseudo-reloc.c|| undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\libmingw32.a(pseudo-reloc.o):pseudo-reloc.c|| undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\libmingw32.a(pseudo-reloc.o):pseudo-reloc.c|| undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\libgcc.a(cygming-shared-data.o)||In function `cmshared_get_ptr_from_atom':| 
c:\crossdev\b4.4.1-tdm-1\build-sjlj\mingw32\libgcc\..\..\..\..\gcc-4.4.1\libgcc\..\gcc\config\i386\cygming-shared-data.c|91|undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\libgcc.a(cygming-shared-data.o)||In function `_cmshared_create_or_grab':| 
c:\crossdev\b4.4.1-tdm-1\build-sjlj\mingw32\libgcc\..\..\..\..\gcc-4.4.1\libgcc\..\gcc\config\i386\cygming-shared-data.c|140|undefined reference to `[email protected]'| 
d:\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\libgcc.a(cygming-shared-data.o)||In function `cmshared_add_ptr_as_atom':| 
c:\crossdev\b4.4.1-tdm-1\build-sjlj\mingw32\libgcc\..\..\..\..\gcc-4.4.1\libgcc\..\gcc\config\i386\cygming-shared-data.c|118|undefined reference to `[email protected]'| 
||=== Build finished: 10 errors, 0 warnings ===| 

必要に応じて、ここにビルドログを貼り付けることができます。誰でも私にこれを解決するために必要なことを教えてもらえますか?それとも自分自身でトラブルシューティングをして、これからのような将来の問題を自分自身で解決できるか?

[編集]:これで解決できるようになりました。 Project-> Build Options-> Linker Settings-> Link Librariesで遊んでいるうちに、kernel32.libのようなものを追加するとldが "-lkernel32.lib"を見つけることができないというエラーが表示されることに気付きました。だから、私が必要とするライブラリを見つけて、絶対パスを追加してプロジェクトを完璧にコンパイルするまで、私は周りを探索しました! :Dしかし、私は図書館の検索パスを追加したので、これは奇妙なことでしたが、それは助けに見えませんでした。だから私はそれがうまくいかなかった理由を見るためにもう一度やり直しました。パス名に後ろにバックスラッシュを付ける必要があります。例えば、ライブラリが "C:\ SDK \ Lib \"にある場合Code :: BLocksの末尾にスラッシュを追加して正しく検索します。これが修正されたら、私はリンカ設定 - >ライブラリをkernel32に変更しました。これは推奨されていました。今は問題なく動作します。

これで私を助けてくれた皆様、ありがとうございます!^_^

答えて

0

あなたはKernel32.libとリンクしていないようです。プロジェクトのプロパティを確認してください。

+0

私は実際にkernel32.libを持っていないようです。 :/それは私がWindows 7のスターター(私はそれを変更することができれば願っていますが、私は現時点では幾分限られたリソースを持っている)の事実かもしれませんが、私はkernel32.dllを持っていますが、それは動作しませんでした。私はCode :: Blocksのやや新しかったので、間違ってやっているかもしれませんが、Project-> Build Options-> Linker Settings-> Link librariesで設定しました。また、私はkernel32.libにリンクしていないと考えていますか?尋問を聞こうとしないで、私が言ったように、私はこのようなことを自分自身から理解する方法を学びたいと思う。 – Luna

0

私は同じ問題を抱えていましたが、しばらくしてから、問題をリンカーに頼り、いくつかのウィンドウ関数をexeファイルにリンクしようとしましたが、コンパイラはそれらを見つけることができませんでした。私はこの解決方法:

  1. のWindows 7 SDKをインストールし、あなたはここからダウンロードできます。http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=3138
  2. は、コードブロック プロジェクト/ビルド・オプションの検索ライブラリにライブラリのパスを追加したい場合(プロジェクトを選択あなたが持っているすべての設定にリンクするために)/ Search Directories/Linker/SDKライブラリパスを追加して置きます.C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Lib
  3. リンカー設定のWindowsライブラリへの参照を追加してください: プロジェクト/ビルドオプション/リンカー設定/追加(リンクライブラリで)、kernel32、user32、およびgdi32を追加してくださいWindows GUIを使用している場合は1つ追加する必要があります)。

それは...今、あなたのプロジェクトを再構築し、完璧に動作するはずです。

注:この設定をexeプロジェクトに追加する必要があります。ライブラリを作成する場合、exeファイルをリンクしようとするとエラーが表示されます。

+0

返信いただきありがとうございます。残念ながら、それは私の問題を解決しませんでした。私は今必要なライブラリを持っています(私はフォルダをチェックしました)、私は必要な参照を追加しましたが、私はまだ同じ問題を抱えています、実際には、私が持っているエラーに違いはありません。私はMSVC 2008 Expressでそれを試してみることを考えています。それがうまくいくかどうかを確認するために、私はその結果を投稿します。 – Luna

1

ライブラリをsystem32に置き、LIBS += L$$quote(C:/Windows/System32)でリンクしようとすると、同じエラーが表示されます。

通常のディレクトリに配置して相対パスを設定すると、すべて正常に動作します。