2011-08-09 30 views
4

これは何を意味するのでしょうか?C++未解決の外部

1> Generating Code... 
1>BlankWindowDXbaseImpl.obj : error LNK2019: unresolved external symbol "public: __thiscall DXBase::DXBase(void)" ([email protected]@[email protected]) referenced in function "public: __thiscall BlankWindowDXBaseImpl::BlankWindowDXBaseImpl(void)" ([email protected]@[email protected]) 
1>BlankWindowDXbaseImpl.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall DXBase::~DXBase(void)" ([email protected]@[email protected]) referenced in function "public: virtual __thiscall BlankWindowDXBaseImpl::~BlankWindowDXBaseImpl(void)" ([email protected]@[email protected]) 
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall DXBase::shutdown(void)" ([email protected]@@QAEXXZ) referenced in function [email protected] 
1>main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall DXBase::initalize(struct HINSTANCE__ *,struct HWND__ *)" ([email protected]@@[email protected]@[email protected]@@Z) referenced in function [email protected] 
1>C:\backup\development\directXworkspace\BlankWindow\Debug\BlankWindow.exe : fatal error LNK1120: 4 unresolved externals 

答えて

12

これは、未解決の外部記号があることを意味します。

シンボルとは何ですか?シンボルには、変数、クラス、メンバ関数、関数のどれでもかまいません。

なぜ解決されないのですか?コードの一部(または使用しているライブラリ)は、これらのシンボルに依存しており、正しいライブラリをリンクしていないか、実装していないため、見つからない場合があります。

+0

あなたはもちろん、リンカーは正しいlibを見つけることができません。しかし、VS2010では、必要なlibへのパスを含めるようにlibパスを設定しました。単にそれを見つけられないだろう。私はちょっと疲れて、クラスとヘッダーを同じプロジェクトに移動したので、ローカルにlibを探しています。 – Sublimemm

+2

これは普通のことなので、明らかに正しいことをしていません。宝探しの危険がある場合は、1)ライブラリディレクトリを「一般/追加のライブラリディレクトリ」に追加する必要があります。2)ライブラリを「入力/追加の依存関係」に追加します。3).libを参照する際に.libを忘れないでください。ライブラリを作成します。 – john

1

これはリンカーに問題があることを意味します。 (リンカはこれらのシンボルでライブラリを見つけることができません)ライブラリパスに必要なライブラリを含める必要があります。

0

おそらくあなたは適切なライブラリとリンクしていません。

しかし、あなたはいくつかの詳細を与えるべきです..それはあなたがクイズコンテストで質問をしているように見えます。

3

はい、あなたのプログラムは、宣言されているがボディがない関数を呼び出すことを意味します。

これらの機能がコードの一部であるか、ライブラリによって提供されることを期待していますか?

+0

シンプルで、まっすぐです。私はすぐに私のエラーを見つけることができました! – absentmindeduk

0

#pragma comment(lib、 "d3d9.lib")を追加したばかりです。 これには、コードをコンパイルするために必要なライブラリファイルが含まれます。 64ビットまたは32ビットのいずれかを取得するためにlibファイルを混乱させるだけです。お役に立てれば。