2010-12-16 1 views
0

LabCVI Projekt를 MSVS 2010 C++ Express로 포팅하려고합니다. 코드 느릅 나무의 라인은 다음과 같이이 읽습니다 :링커 오류 LNK2019는 __stdcall로 추적되었습니다. 올바른 라이브러리가 있다고 생각합니다.이 문제를 해결하려면 어떻게해야합니까?

if (InitCVIRTE == 0) return 0; 

링커 오류가 발생 LNK2019 "_InitCVIRTEEx 12 @"- 모든 관련 헤더가 이미 CPP 문을 기능 : 나는 오류를 추적

#ifdef __cplusplus 
extern "C" { 
#endif 
... 
#ifdef __cplusplus 
} 
#endif 

다시 내가 당신을 위해 결합이 조각에 :

#define CVIFUNC __stdcall 
int CVIFUNC InitCVIRTEEx (void *hInstance, char *argv[], void *reserved); 
#define InitCVIRTE InitCVIRTEEx 

이를 요약하면 :

int __stdcall InitCVIRTEEx (void *hInstance, char *argv[], void *reserved); 

이 호출은 라이브러리 경로 (CVI2009 \ extlib \ msvc)에 추가 된 cvirt.lib에 정의되어야합니다. 링커 오류가 여전히 발생하고 그 이유를 알 수 없습니다.

다른 방식으로 lib를 추가해야합니까? 이것이 실제로 올바른 라이브러리인지 어떻게 확인할 수 있습니까? 오류가 완전히 다른 것을 의미합니까?

+0

'InitCVIRTEEx'의 정의를 찾을 수 있습니까? –

+0

예, 트레이스를 함께 복사했습니다 - 그 문장은 중간에 있습니다. – Johannes

답변

2

링크 할 라이브러리를 링커에 알려줘야합니다. 검색 경로는 링커에게 라이브러리를 찾을 위치를 알려줍니다.

즉 : 링커가 a.lib 및 b.lib 모두 폴더를 검색하지만이에 대해 들었 었소 어떤 라이브러리를 연결하지 않습니다

Linker Libraries: 
- a.lib 
- b.lib 

Linker Search Dirs: 
C:\project_a\lib 
C:\project_b\lib 

.

0

어떻게 든 그냥 해결했습니다. 프로젝트에 cvirt.lib 및 cvisupp.lib를 direktly로 추가했습니다. 오류가 이제 사라졌습니다 ...

그러나 나는 이미 프로젝트를 라이브러리를 찾아야하는 경로를 이미 제공했기 때문에 아직 만족하지 않습니다. 그 차이점을 물어 stackoverflow 다른 질문을 추가 할 것입니다.

관련 문제