• ベストアンサー

C++でコンパイルできない初心者です

C++のデザインパターンの勉強をしているのですが、 http://www002.upp.so-net.ne.jp/ys_oota/mdp/FactoryMethod/index.htm に載っているC++のコードがVisual Studio 2012では エラー 2 error LNK2019: 未解決の外部シンボル "public: __thiscall CreatorA::CreatorA(void)" (??0CreatorA@@QAE@XZ) が関数 "class Creator * __cdecl Create(char)" (?Create@@YAPAVCreator@@D@Z) で参照されました。 C:\Source.obj とでてコンパイルできません。 初学者なので分かる方はご回答お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

再現しました。ソースコードに問題があります。 あなたのせいではありません。 70行目あたりに CreatorA::CreatorA() { } を追加。

Nicolas_2013
質問者

お礼

ありがとうございました。とっても助かりました! まわりに聞ける人がいなくてこまっていました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • LINKエラーについて

    リンクエラーが出て困っております。 アドバイスお願いします。 リンク中... Dlg11.obj : error LNK2001: unresolved external symbol "public: virtual struct CRuntimeClass * __cdecl CPOSPrinter::GetRuntimeClass(void)const " (?GetRuntimeClass@CPOSPrinter@@UBAPAUCRuntimeClass@@XZ) Dlg11.obj : error LNK2019: unresolved external symbol "public: void __cdecl CPOSPrinter::SetAsyncMode(int)" (?SetAsyncMode@CPOSPrinter@@QAAXH@Z) referenced in function "public: void __cdecl Dlg11::OnPrint(void)" (?OnPrint@CHandyDlg11@@QAA XXZ) 上記のようなエラー内容です。 インクルードするヘッダーが問題と思いますが。 アドバイスお願いいたします。

  • DXライブラリ3DをVisual C++2008EEに導入したい!

    ・・・のですが、導入方法が間違えたのか、あるいはどこか欠けていたのか、訳の分からないエラーが発生しました。僕はこれを見ても何処が間違えたのかがさっぱりです。一体どこに・・・? ちなみに、普通のDXライブラリと同じやり方で導入しました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::ScreenFlip(void)" (?ScreenFlip@myLib_c@@QAEJXZ) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::DrawTeapot(struct D3DXVECTOR3,struct D3DXVECTOR3,float,float,struct _LCOLOR,bool)" (?DrawTeapot@myLib_c@@QAEJUD3DXVECTOR3@@0MMU_LCOLOR@@_N@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::SetCamera(struct D3DXVECTOR3,struct D3DXVECTOR3)" (?SetCamera@myLib_c@@QAEJUD3DXVECTOR3@@0@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: enum G::KeyType_e __thiscall myLib_c::GetKey(void)" (?GetKey@myLib_c@@QAE?AW4KeyType_e@G@@XZ) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::DrawCameraPoint(float,float,unsigned long,bool)" (?DrawCameraPoint@myLib_c@@QAEJMMK_N@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::AdjustFPS(int)" (?AdjustFPS@myLib_c@@QAEJH@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: unsigned long __thiscall myLib_c::CLS(unsigned long)" (?CLS@myLib_c@@QAEKK@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::MessageProcess(void)" (?MessageProcess@myLib_c@@QAEJXZ) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2019: 未解決の外部シンボル "public: long __thiscall myLib_c::Init(struct HWND__ *)" (?Init@myLib_c@@QAEJPAUHWND__@@@Z) が関数 _WinMain@16 で参照されました。 3dlib.obj : error LNK2001: 外部シンボル ""class myLib_c mL" (?mL@@3VmyLib_c@@A)" は未解決です。 C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\xxx3d\Debug\3d.exe : fatal error LNK1120: 外部参照 10 が未解決です。 と出ました。 あと、入れたソースは #include "DxLib.h" int DxMain() { if ( FAILED( mL.Init() ) ) //ライブラリの初期化処理 return -1; VECTOR3 EyePoint( 0, 0, -4 ); //カメラのある座標(視点) VECTOR3 LookAtPoint( 0, 0, 0 ); //カメラが見つめる座標(注視点) // ウィンドウのメッセージ処理を行い、エラーが無い限りループ while ( SUCCEEDED( mL.MessageProcess() ) ) { mL.CLS(); //画面をクリア mL.AdjustFPS(60); //FPSを調整 mL.DrawCameraPoint( 10, 10 ); //カメラ座標を描画 // キー入力 switch ( mL.GetKey() ){ case G::KEY_UP: EyePoint.y++; break; //上キー case G::KEY_DOWN: EyePoint.y--; break; //下キー } mL.SetCamera( EyePoint, LookAtPoint ); //カメラをセット mL.DrawTeapot( VECTOR3( 0, 0, 0 ) ); //ティーポットを描画 mL.ScreenFlip(); //裏画面を表画面に反映 } return 0; } ・・・です。

  • VC++/MFCで error LNK2001

    C++/MFCで以下のようなエラーが出て困っております。 だれか、原因の分かる方はいらっしゃいますでしょうか? 1>Test.obj : error LNK2001: 外部シンボル ""public: __thiscall CSampleApp::CSampleApp(void)" (??0CSampleApp@@QAE@XZ)" は未解決です。 1>C:Test\src\Test\Release\Test.exe : fatal error LNK1120: 外部参照 1 が未解決です。 エラーのあったソースコード --------------------------------------------------------- #include "../Sample/Sample.h" void Test::Onfile() { std::auto_ptr<CSampleApp> p( new CSampleApp() );//←このソースコードを追加するとエラーになります。 } --------------------------------------------------------- Sample.h --------------------------------------------------------- class CSampleApp : public CWinApp { public: CSampleApp(); }; extern CSampleApp atTheApp; ----------------------------------------------------------

  • C言語についてです。

    プログラムを実行しようとすると、 main.obj : error LNK2001: 外部シンボル ""void __cdecl DrawGameOver(void)" (?DrawGameOver@@YAXXZ)" は未解決です。 fatal error LNK1120: 外部参照 1 が未解決です。 とでてしまいます。 どうすれば解決するのでしょうか? 初心者なのでなるべく分かりやすくお願いします。

  • vc 2008 C&C++ コンパイル時について

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 「1>str_cpy.obj : error LNK2005: _main は既に Cprog.obj で定義されています。 1>str_cpy.obj : error LNK2005: "int __cdecl main(void)" (?main@@$$HYAHXZ) は既に Cprog.obj で定義されています。」 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー というようなエラーが出た時の対処法はありませんか?これは同プロジェクト内でmainを二回以上使うなということですよね? これじゃ同じプロジェクト内で二つ以上のCファイルは作れないことになりませんか? どなたか解決法があればお願いします。

  • 未解決の外部シンボル

    Microsoft DirectX SDK (August 2009)\Samples\C++\Direct3\MultiAnimationをデスクトップにコピーして実行すると動くんですが、SampleBrowserからemptyprojectをインストールして MultiAnimationと同じcppとhをプロジェクトに追加すると、 1>DXUTgui.obj : error LNK2019: 未解決の外部シンボル _D3DX10CreateEffectFromMemory@56 が関数 "public: long __thiscall CDXUTDialogResourceManager::OnD3D10CreateDevice(struct ID3D10Device *)" (?OnD3D10CreateDevice@CDXUTDialogResourceManager@@QAEJPAUID3D10Device@@@Z) で参照されました。 1>DXUTcamera.obj : error LNK2001: 外部シンボル "_D3DX10CreateEffectFromMemory@56" は未解決です。 1>DXUTgui.obj : error LNK2019: 未解決の外部シンボル _D3DX10CreateSprite@12 が関数 "public: long __thiscall CDXUTDialogResourceManager::OnD3D10ResizedSwapChain(struct ID3D10Device *,struct DXGI_SURFACE_DESC const *)" (?OnD3D10ResizedSwapChain@CDXUTDialogResourceManager@@QAEJPAUID3D10Device@@PBUDXGI_SURFACE_DESC@@@Z) で参照されました。 1>DXUTgui.obj : error LNK2019: 未解決の外部シンボル _D3DX10CreateFontW@48 が関数 "protected: long __thiscall CDXUTDialogResourceManager::CreateFont10(unsigned int)" (?CreateFont10@CDXUTDialogResourceManager@@IAEJI@Z) で参照されました。 1>DXUTgui.obj : error LNK2019: 未解決の外部シンボル _D3DX10CreateTextureFromFileW@24 が関数 "protected: long __thiscall CDXUTDialogResourceManager::CreateTexture10(unsigned int)" (?CreateTexture10@CDXUTDialogResourceManager@@IAEJI@Z) で参照されました。 1>SDKmisc.obj : error LNK2001: 外部シンボル "_D3DX10CreateTextureFromFileW@24" は未解決です。 1>DXUTgui.obj : error LNK2019: 未解決の外部シンボル _D3DX10GetImageInfoFromFileW@16 が関数 "protected: long __thiscall CDXUTDialogResourceManager::CreateTexture10(unsigned int)" (?CreateTexture10@CDXUTDialogResourceManager@@IAEJI@Z) で参照されました。 1>SDKmisc.obj : error LNK2001: 外部シンボル "_D3DX10GetImageInfoFromFileW@16" は未解決です。 1>DXUTgui.obj : error LNK2019: 未解決の外部シンボル _D3DX10CreateTextureFromResourceW@28 が関数 "protected: long __thiscall CDXUTDialogResourceManager::CreateTexture10(unsigned int)" (?CreateTexture10@CDXUTDialogResourceManager@@IAEJI@Z) で参照されました。 1>DXUTgui.obj : error LNK2019: 未解決の外部シンボル _D3DX10GetImageInfoFromResourceW@20 が関数 "protected: long __thiscall CDXUTDialogResourceManager::CreateTexture10(unsigned int)" (?CreateTexture10@CDXUTDialogResourceManager@@IAEJI@Z) で参照されました。 1>DXUTres.obj : error LNK2019: 未解決の外部シンボル _D3DX10CreateTextureFromMemory@28 が 関数 "long __stdcall DXUTCreateGUITextureFromInternalArray10(struct ID3D10Device *,struct ID3D10Texture2D * *,struct D3DX10_IMAGE_INFO *)" (?DXUTCreateGUITextureFromInternalArray10@@YGJPAUID3D10Device@@PAPAUID3D10Texture2D@@PAUD3DX10_IMAGE_INFO@@@Z) で参照されました。 1>DXUTres.obj : error LNK2019: 未解決の外部シンボル _D3DX10GetImageInfoFromMemory@20 が関数 "long __stdcall DXUTCreateGUITextureFromInternalArray10(struct ID3D10Device *,struct ID3D10Texture2D * *,struct D3DX10_IMAGE_INFO *)" (?DXUTCreateGUITextureFromInternalArray10@@YGJPAUID3D10Device@@PAPAUID3D10Texture2D@@PAUD3DX10_IMAGE_INFO@@@Z) で参照されました。 1>Debug\GRAVITY ESCAPE.exe : fatal error LNK1120: 外部参照 9 が未解決です。 とでます(長くてすみません)。 追加のインクルードディレクトリにはDXUT\Optional;DXUT\Coreを指定しています。 独学で勉強しているんですが、このエラーの原因がまったく分かりません。 どなたかよろしくお願いします。

  • VC++2005ExpressEditionでのエラー

    タイトルの通り、VC++2005EEでプログラムを作成しているのですが ビルド時にエラーが出てしまいます。 ------ ビルド開始: プロジェクト: Object, 構成: Debug Win32 ------ リンクしています... 3jjiki.obj : error LNK2019: 未解決の外部シンボル "int img_R" (?img_R@@3HA) が関数 "void __cdecl JikiLoad(void)" (?JikiLoad@@YAXXZ) で参照されました。 3jjiki.obj : error LNK2019: 未解決の外部シンボル "int img_C" (?img_C@@3HA) が関数 "void __cdecl JikiLoad(void)" (?JikiLoad@@YAXXZ) で参照されました。 3jjiki.obj : error LNK2019: 未解決の外部シンボル "struct BBB * bombig" (?bombig@@3PAUBBB@@A) が関数 "void __cdecl JikiInit(void)" (?JikiInit@@YAXXZ) で参照されました。 3jjiki.obj : error LNK2019: 未解決の外部シンボル "struct BBB * bom" (?bom@@3PAUBBB@@A) が関数 "void __cdecl JikiInit(void)" (?JikiInit@@YAXXZ) で参照されました。 3jjiki.obj : error LNK2019: 未解決の外部シンボル "struct SHOT_C * JitamaC" (?JitamaC@@3PAUSHOT_C@@A) が関数 "void __cdecl JikiShotC(void)" (?JikiShotC@@YAXXZ) で参照されました。 3jjiki.obj : error LNK2019: 未解決の外部シンボル "struct CharaData CharaData" (?CharaData@@3U0@A) が関数 "void __cdecl JikiShotC(void)" (?JikiShotC@@YAXXZ) で参照されました。 3jjiki.obj : error LNK2019: 未解決の外部シンボル "struct SHOT_R * JitamaR" (?JitamaR@@3PAUSHOT_R@@A) が関数 "void __cdecl JikishotR(void)" (?JikishotR@@YAXXZ) で参照されました。 I:\Works\Projects\Object\Debug\Object.exe : fatal error LNK1120: 外部参照 7 が未解決です。 ビルドログは "file://i:\Works\Projects\Object\Object\Debug\BuildLog.htm" に保存されました。 Object - エラー 8、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== 未解決のシンボルと言われているものは全てヘッダーファイルにて extern int img_C; の様に宣言しています。 あれこれ弄って見たのですが全く進展しません。 アドバイスをお願いします。

  • C++でのエラー LNK2001

    C++でプログラミング中ビルドしたところ以下のようなエラーが出ました。解決方法がわかりません。どのようにしたら解決できるのでしょうか? ---------------------------------------------------------------- コンパイル中... sample01.cpp リンク中... sample01.obj : error LNK2001: 外部シンボル "__imp__dispose_library" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__get_copyright_information" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__get_version_information" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__initialize_library" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__close_reader_writer" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__get_last_error_types" は未解決です Debug/Sample01.exe : fatal error LNK1120: 外部参照 6 が未解決です。 link.exe の実行エラー

  • DirectX8でコンパイルエラー

    DirectX8実践プログラミングという本についてくるサンプルプログラムを コンパイルしようとしているのですが、 sprite.obj : error LNK2001: 外部シンボル "_D3DXCreateSprite@8" は未解決です sprite.obj : error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileA@12" は未解決です sprite.obj : error LNK2001: 外部シンボル "_Direct3DCreate8@4" は未解決です .\Debug/spriteanimate.exe : fatal error LNK1120: 外部参照 3 が未解決です。 link.exe の実行エラー となってしまいます。DirectXを使っての勉強をはじめたばかりなのですが いきなりつまってしまいました。 おそらくライブラリが見つからないのかと思うのですが ライブラリのディレクトリ設定でC:\mssdk\libも追加されていました。 DirectX8SDKについてくるサンプルはコンパイル出来るのですが どういう理由が考えられるでしょうか?

  • C++STLについての質問です。

    C++STLについての質問です。 Visual C++ 2008 Express Edition を使用してDirectXアプリケーションを 作成しています。 その折、std::listテンプレートを使用する機会があったのですが、このリストを 使用しますと、 リンクしています... LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 libcpmtd.lib(stdthrow.obj) : error LNK2019: 未解決の外部シンボル __CrtDbgReportW が関数 "void __cdecl std::_Debug_message(wchar_t const *,wchar_t const *,unsigned int)" (?_Debug_message@std@@YAXPB_W0I@Z) で参照されました。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __malloc_dbg が関数 "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 libcpmtd.lib(xdebug.obj) : error LNK2019: 未解決の外部シンボル __free_dbg が関数 "void __cdecl operator delete(void *,struct std::_DebugHeapTag_t const &,char *,int)" (??3@YAXPAXABU_DebugHeapTag_t@std@@PADH@Z) で参照されました。 fatal error LNK1120: 外部参照 3 が未解決です。 とのエラーが吐かれます。 ネットで検索すると、ソリューション構成をDebugからReleaseにすれば良いとの記述が ありましたので、実行してみました。しかし、 リンクしています... error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileExW@56" は未解決です。 error LNK2001: 外部シンボル "_D3DXCreateSprite@8" は未解決です。 error LNK2001: 外部シンボル "_D3DXGetImageInfoFromFileW@8" は未解決です。 error LNK2001: 外部シンボル "_Direct3DCreate9@4" は未解決です。 fatal error LNK1120: 外部参照 4 が未解決です とのエラーが吐かれてしまいました。 尚、コード生成モードは、マルチスレッド(/MT)で作成しています。 どなたか、この問題を解決する方法をご存知ないでしょうか? よろしくお願いします。

このQ&Aのポイント
  • iPhone12proのWiFi設定ができず、ルーター(ELECOM)とのリンクができない問題について詳細を説明します。
  • ルーター(ELECOM)の簡単セットアップでプロバイダー情報の設定(PPPoE)をしても「500-Internet server error」というエラーが出てしまう現象について調査しています。
  • ソフトバンク光回線と使用しており、OkWaveのフォーラムでも同様の現象が報告されています。これまで問題なく使用していたルーターであるため、解決策をご教示いただけると助かります。
回答を見る