문제

비주얼 스튜디오에서 직접 호출하지 않는 방법에 대한 링커 오류가 많이 있습니다. 저는 하루 종일 Java 개발자이지만 Windows Machines에서 실행하려는 C ++에서해야 할 프로젝트가 있습니다. 따라서 비주얼 스튜디오에 엉망이되었습니다.

기본적으로, Accessor 방법을 추가 한 OS 프로젝트가 있습니다. 해당 프로젝트를 .lib 파일로 컴파일했습니다 (컴파일 및 링크가 정상).

그런 다음 해당 lib를 사용하는 나만의 프로젝트가 있습니다. 프로젝트 -> 속성 -> 링커 -> 입력 아래 라이브러리를 포함시키고 일반 -> 추가 LIB 디렉토리에 적절한 디렉토리를 설정했습니다. 적절한 파일에 헤더를 포함 시켰으며 단순히 클래스 중 하나의 생성자를 호출합니다. 아직 만든 방법을 호출하지도 않습니다.

코드는 컴파일하지만 다음과 같은 산의 링커 오류가 발생합니다. 대부분 LNK2019 및 LNK2001 오류. 다른 설정 (lib, exe 등)에서 다시 컴파일을 시도했지만 링커 오류는 곱하는 것 같습니다. 이전 설정으로 다시 전환하면 오류 수는 최고점에 남아 있습니다. 이것을 고치는 방법이 있습니까?

로그 빌드

빌드 시작 : 프로젝트 : Spamcapture, 구성 : 디버그 | Win32

명령 줄 :

임시 파일 만들기 "c : spamcapture spamcapture spamcapture debug rsp0000103081740.rsp"내용 [ /verbose : lib /out:"c/spamcapture.exe " /licemental /libpute : "c : spamcapture config debug " /manifest /manifestfile:"debugspamcapture.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 ele32.lib ele32.lib ele32.lib advapi32.lib. .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 : 모호한 진입 점; C : SpamCapture Config 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 파일 microsoft visual studio 8 vc vc platformsdk lib gdi32.lib : c : program 파일 microsoft visual studio 8 vc platformsdk . lib winspool.lib : c : program files 검색 microsoft visual studio 8 vc platformsdk lib comdlg32.lib : c : program 파일 검색 microsoft Visual Studio 8 vc platformsdk lib advapi32.lib : C : Program Files Microsoft Visual Studio 8 VC VC VC VC VC VC VC VlictsDK Lib Shell32.lib 검색 : C : Program Files Microsoft Visual Studio 8 VC Platformsdk Lib Ole32.lib : C : Program Files 검색 Microsoft Visual Studio 8 vc Platformsdk lib eleaut32.lib : c : program 파일 검색 microsoft visual studio 8 vc lib uuid.lib : c : program files microsoft visual studio 8 vc 플랫폼 SDK li b odbc32.lib : c : program files 검색 microsoft visual studio 8 vc platformsdk lib odbccp32.lib : c : program 파일 검색 microsoft Visual Studio 8 vc lib msvcprtd.lib : 검색 c : c : : Program Files Microsoft Visual Studio 8 VC Lib MSVCRTD.LIB : C : Program Files 검색 Microsoft Visual Studio 8 VC Lib Oldnames.lib : C : Program Files Microsoft Visual Studio 8 vc atlmfc lib mfc80ud.lib : c : program 파일 검색 microsoft visual studio 8 vc atlmfc lib mfcs80ud.lib : 프로그램 파일 microsoft visual studio 8 vc platformsdk lib lib lib lib lib lib lib lib lib lib. msimg32.lib : 검색 c : program 파일 microsoft Visual Studio 8 vc platformsdk lib comctl32.lib : c : program 파일 검색 microsoft visual studio 8 vc platformsdk lib shlwapi.lib : 검색 c : c : : Program Files Microsoft Visual Studio 8 vc atlmfc lib atlsd.lib : c : program files microsoft visual studio 8 vc platformsdk lib wininet.lib : c : program 파일 검색 microsoft microsoft Visual Studio 8 vc Platformsdk lib ws2_32.lib : 검색 c : pr OGRAM 파일 Microsoft Visual Studio 8 VC Platformsdk lib Mswsock.lib : 검색 C : SpamCapture config debug keycapture_config.lib : program 파일 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 : 프로그램 파일 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 파일 검색 microsoft Visual Studio 8 vc vc vc platformsdk lib shell32.lib : c : program 파일 microsoft visual studio 8 vc platformsdk lib ole32.lib : c : program 파일 검색 microsoft visual studio 8 vc platformsdk lib eleaut32.lib : c : program 파일 검색 microsoft Visual Studio 8 vc lib uuid.lib : : Program Files Microsoft Visual st udio 8 vc platformsdk lib odbc32.lib : c : program 파일 검색 microsoft visual studio 8 vc platformsdk lib odbccp32.lib : program 파일 microsoft visual studio 8 vc lib 검색 msvcprtd.lib : c : program 파일 검색 microsoft visual studio 8 vc lib msvcrtd.lib : 검색 c : program 파일 microsoft visual studio 8 vc lib oldnames.lib : 검색 c : program 파일 Microsoft Visual Studio 8 vc atlmfc lib mfc80ud.lib : c : program 파일 검색 microsoft visual studio 8 vc atlmfc lib mfcs80ud.lib : Program Files Microsoft Visual Studio 8 vc platformsdk lib msimg32.lib : c : program 파일 검색 microsoft visual studio 8 vc vc platformsdk lib comctl32.lib : 프로그램 파일 microsoft visual studio 8 vc platformsdk lib shlwapi.lib : c : program 파일 검색 microsoft visual studio 8 vc atlmfc lib atlsd.lib : c : program 파일 검색 microsoft Visual Studio 8 vc platformsdk lib wininet.lib : 검색 : 검색 C : Program Files Microsoft Visual Studio 8 VC Platformsdk Lib WS2 _32.lib : 검색 C : Program Files Microsoft Visual Studio 8 VC Platformsdk Lib Mswsock.lib : 검색 C : SpamCapture Config Debug keycapture_config.lib : 검색 C : Program Files Microsoft Visual Studio 8 vc lib kernel32.lib : c : program 파일 검색 microsoft visual studio 8 vc platformsdk lib user32.lib : c : program 파일 검색 microsoft visual studio 8 vc platformsdk lib gdi32.lib : c : program 파일 검색 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 : Microsoft Microsoft Microsoft Visual Studio 8 vc Platformsdk lib Ole32.lib : C : Program 파일 검색 Microsoft Visual Studio 8 VC Platformsdk Lib Oleaut32.lib : C : Program Files Microsoft Visual Studio 8 VC lib uuid.lib : 검색 c : program f ILES Microsoft Visual Studio 8 VC Platformsdk Lib Odbc32.lib : C : Program Files 검색 Microsoft Visual Studio 8 VC Platformsdk Lib Odbccp32.lib : C : Program 파일 검색 Microsoft Visual Studio 8 vc lib msvcprtd.lib : 라이브러리 검색 완료

링커 오류가 시작됩니다.

keycapture_config.lib (keycapture_configdlg.obj) : 오류 LNK2001 : 해결되지 않은 외부 기호 "public : public : virtual int __thiscall cwnd :: create (char const *, char const *, unsigned long, struct tagreccrect &, class cwnd *, unsigned, 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 *)"(?

... 이런 식으로 더 많은 무리

(? dodataexchange@setupdialog @@ maexpavcdataexchange @@@ z) c : spamcapture spamcapture spamcapture debug spamcapture.exe : 치명적인 오류 lnk1120 : 34 미시적이지 않은 외부

결과:

빌드 로그는 "파일 : // c : spamcapture spamcapture spamcapture debug buildLog.htm"에 저장되었습니다.

도움이 되었습니까?

해결책

도서관 KeyCapture_Config.lib MFC GUI 클래스를 사용하고 있습니다 (CWnd, CWinApp, 등), 그러나 연결하는 응용 프로그램은 콘솔 응용 프로그램입니다 ( /SUBSYSTEM:CONSOLE 링커 명령 줄의 옵션). 이것은 작동하지 않습니다. 새로운 MFC GUI 응용 프로그램 프로젝트를 만들고 해당 프로젝트에 라이브러리를 추가해야합니다.

편집 : 방금 귀하의 의견에서 링크를 확인했습니다. http://dynamicnetservices.com/~will/academic/textinput/keycapture/ KeyCapture_Config는 실제로 KeyCapture DLL을 사용하는 MFC 대화 상자 응용 프로그램 인 것 같습니다. 직접 연결하여 콘솔 애플리케이션에서 Keycapture를 사용할 수 있습니다. KeyCapture.lib.

다른 팁

링크 오류는 많은 MFC 함수의 부족에 대해 불평하는 것으로 보이며 링크 라인에는 mfc를 제외하는 /nodefaultlib:"nafxcwd.lib "가 포함됩니다. 당신이 MFC와 구축하는 LIB가 연결되어 있습니까?

확인해야 할 다른 사항은 동일한 문자 세트 (예 : 멀티 바이트 또는 유니 코드 모두)로 앱과 lib를 컴파일하고 있다는 것입니다.

lib를 구축 할 때 링크 단계가 없으므로, 다른 객체 모음을 다른 객체 모음을 다른 필요에 대해 아무런 관련이 없이는 LIB에 던질 수 있습니다.

프로젝트가 디버그 멀티 스레드 런타임과 연결되는 것처럼 보입니다. 이것이 당신의 의도입니까? 그렇다면 사용중인 KeyCapture_Config 라이브러리에는 불일치가있을 수 있습니다.

KeyCapture_Config는 제 3 자 도서관입니까? 그렇다면 소스에서 빌드 했습니까? 아니면 LIB/DLL이 귀하에게 제공 되었습니까?

C/C ++ 런타임이 구축되는 것에 대한 조사가 필요할 수 있습니다. 당신은 참조 할 수 있습니다 Microsoft KB 기사 이로 인해 가능한 런타임 빌드 불일치에 약간의 빛을 비추는 데 도움이 될 수 있습니다.

Rob Walker가 문제를 해결했다고 생각합니다. keycapture_config.lib에 대한 문서에 MFC에 대한 연결이 없다고 말하는 경우 MFC에 연결 해야하는 소스를 확인하십시오. 이 같은:

#pragma comment(lib, "nafxcwd.lib")

MFC에 종속성을 유발하고 keycapture_config.lib doc가 구식 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top