1

プロジェクトでDCMTK(/ MT)ライブラリを使用しようとすると、次のリンクエラーが発生しました。エラーはVS2010のws2_32.libwsock32.libnetapi32.libに関連していると確信しています。しかし、私はすでにこれら3つのライブラリをプロジェクトプロパティに追加しています。以下に示すように、ライブラリが検索されたことがわかります。ライブラリはC:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A\libにあります。注文の問題?なにか提案を?

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__CopySid@12 referenced in function "bool __cdecl `anonymous namespace'::CopySid(struct _SID * *,struct _SID *)" (?CopySid@?A0x4f6604f8@@YA_NPAPAU_SID@@PAU2@@Z)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__GetLengthSid@4 referenced in function "bool __cdecl `anonymous namespace'::CopySid(struct _SID * *,struct _SID *)" (?CopySid@?A0x4f6604f8@@YA_NPAPAU_SID@@PAU2@@Z)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__GetTokenInformation@20 referenced in function "bool __cdecl `anonymous namespace'::GetCurrentUserSID(struct _SID * *)" (?GetCurrentUserSID@?A0x4f6604f8@@YA_NPAPAU_SID@@@Z)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__OpenProcessToken@12 referenced in function "bool __cdecl `anonymous namespace'::GetCurrentUserSID(struct _SID * *)" (?GetCurrentUserSID@?A0x4f6604f8@@YA_NPAPAU_SID@@@Z)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__RegCreateKeyExA@36 referenced in function "struct HKEY __ * __cdecl `anonymous namespace'::regGetKey(class OFString const &,unsigned long *)" (?regGetKey@?A0x4f6604f8@@YAPAUHKEY __@@ABVOFString@@PAK@Z)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__RegSetValueExA@24 referenced in function "void __cdecl `anonymous namespace'::regSetString(struct HKEY __ *,class OFString const &,class OFString const &)" (?regSetString@?A0x4f6604f8@@YAXPAUHKEY __@@ABVOFString@@1@Z)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__RegisterEventSourceA@8 referenced in function "protected: void __thiscall log4cplus::NTEventLogAppender::init(void)" (?init@NTEventLogAppender@log4cplus@@IAEXXZ)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__DeregisterEventSource@4 referenced in function "public: virtual void __thiscall log4cplus::NTEventLogAppender::close(void)" (?close@NTEventLogAppender@log4cplus@@UAEXXZ)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__ReportEventA@36 referenced in function "protected: virtual void __thiscall log4cplus::NTEventLogAppender::append(class log4cplus::spi::InternalLoggingEvent const &)" (?append@NTEventLogAppender@log4cplus@@MAEXABVInternalLoggingEvent@spi@2@@Z)

1>oflog.lib(ntelogap.obj) : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function "protected: void __thiscall log4cplus::NTEventLogAppender::addRegistryInfo(void)" (?addRegistryInfo@NTEventLogAppender@log4cplus@@IAEXXZ)

これがlib検索の冗長な部分です:

1>      Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\ws2_32.lib:
1>      Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\netapi32.lib:
1>      Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\wsock32.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\libcpmtd.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\LIBCMT.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\OLDNAMES.lib:

....

1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\msvcprtd.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\MSVCRTD.lib:
1>      Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\LIBCMTD.lib:
1>      Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib:
1>      Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\user32.lib:
....
4

1 に答える 1

2

Advapi32.libでリンクしていないようです。これをリンカー->入力->プロジェクトプロパティの追加の依存関係に追加します。すべてのプロジェクト構成に追加することを忘れないでください([構成]ドロップダウンと[プラットフォーム]ドロップダウンからそれぞれ[すべての構成]と[すべてのプラットフォーム]を選択します)。

于 2013-01-04T02:07:48.427 に答える