直接呼び出していないメソッドに対して、Visual Studio で大量のリンカー エラーが発生しています。私は日中は Java 開発者ですが、Windows マシンで実行することを目的とした C++ で行う必要があるプロジェクトがあります。したがって、私はVisual Studioをいじっています。
基本的に、アクセサー メソッドを追加した os プロジェクトがあります。そのプロジェクトを .lib ファイルとしてコンパイルしました (コンパイルとリンクは問題ありません)。
次に、そのライブラリを使用する独自のプロジェクトを作成します。Project->Properties->Linker->Inputの下にライブラリを含め、General->Additional Lib Directoriesに適切なディレクトリを設定しました。適切なファイルにヘッダーを含めました。クラスの 1 つのコンストラクターを呼び出しているだけです...まだ作成したメソッドを呼び出していません。
コードはコンパイルされますが、次のようなリンカー エラーが山のように表示されます。ほとんどの場合、LNK2019 および LNK2001 エラーです。さまざまな設定 (lib、exe など) で再コンパイルを試みましたが、リンカ エラーが増えるだけのようです。以前の設定に戻すと、エラーの数はピークのままです。これを修正する方法はありますか?
ビルドログ
ビルド開始: プロジェクト: SpamCapture、構成: Debug|Win32
コマンドライン:
[ /VERBOSE:LIB /OUT:"C:\SpamCapture\SpamCapture\SpamCapture\Debug\SpamCapture.exe" /INCREMENTAL /LIBPATH: "C:\SpamCapture\Config\Debug\" /MANIFEST /MANIFESTFILE:"Debug\SpamCapture.exe.intermediate.manifest" /NODEFAULTLIB:"libcmtd.lib" /NODEFAULTLIB:"nafxcwd.lib" /DEBUG /PDB:"c :\SpamCapture\SpamCapture\SpamCapture\Debug\SpamCapture.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 KeyCapture_Config.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32 .lib uuid.lib odbc32.lib odbccp32.lib
".\Debug\Interaction.obj"
".\Debug\InteractionSet.obj"
".\Debug\LogReader.obj"
".\Debug\SpamCapture.obj"
".\Debug\stdafx.obj"
".\Debug\SpamCapture.res"
".\Debug\SpamCapture.exe.embed.manifest.res" ] コマンドライン "link.exe @c:\SpamCapture\SpamCapture\SpamCapture\Debug\RSP0000103081740.rsp /NOLOGO /ERRORREPORT:PROMPT" の作成
出力ウィンドウ:
リンク中... リンク: 警告 LNK4067: あいまいなエントリ ポイント。選択した 'mainCRTStartup' ライブラリを検索中 C:\SpamCapture\Config\Debug\KeyCapture_Config.lib を検索中: C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib を検索中: C:\Program Files\Microsoft Visual Studio を検索中8\VC\PlatformSDK\lib\user32.lib: 検索中 C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib: 検索中 C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\ lib\winspool.lib: 検索中 C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comdlg32.lib: 検索中 C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib: C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib を検索中: C: を検索中
リンカー エラーはここから始まります。
KeyCapture_Config.lib(KeyCapture_ConfigDlg.obj): エラー LNK2001: 未解決の外部シンボル "public: virtual int __thiscall CWnd::Create(char const *,char const *,unsigned long,struct tagRECT const &,class CWnd *,unsigned int,struct CCreateContext *)" (?Create@CWnd@@UAEHPBD0KABUtagRECT@@PAV1@IPAUCCreateContext@@@Z)
...このようなものをもっとたくさん
KeyCapture_Config.lib(KeyCapture_ConfigDlg.obj): エラー LNK2019: 未解決の外部シンボル "public: struct HICON__ * thiscall CWinApp::LoadIconA(unsigned int)const " (?LoadIconA@CWinApp@@QBEPAUHICON @@I@Z) が関数で参照されています" public: __thiscall CKeyCapture_ConfigDlg::CKeyCapture_ConfigDlg(class CWnd *)" (??0CKeyCapture_ConfigDlg@@QAE@PAVCWnd@@@Z)
...このようなものをもっとたくさん
(?DoDataExchange@SetupDialog@@MAEXPAVCDataExchange@@@Z) C:\SpamCapture\SpamCapture\SpamCapture\Debug\SpamCapture.exe: 致命的なエラー LNK1120: 34 の未解決の外部
結果:
ビルド ログは "file://c:\SpamCapture\SpamCapture\SpamCapture\Debug\BuildLog.htm" SpamCapture に保存されました - 44 個のエラー、1 個の警告