2012-03-26 2 views
1

현재 프로젝트에서 나는 Physics 네임 스페이스를 구성 중입니다. 파일에 Core.h는LNK2001이 정의되어 있어도

extern real sleepEpsilon;/* = ((real).3);*/ // typedef float real; used, and works throughout project. 

다음 Core.cpp에

real Physics::sleepEpsilon = ((real)0.3); 

하면 나는 오류가 발생하고 있지만, 그것은 다른 클래스 그 #includes Core.h를 참조하고, 심지어 갔다 지금까지는 모두 Physics::의 머리말을 붙 였지만 LNK 오류는 계속 발생합니다.

편집 : 포함 오류

1>Body.obj : error LNK2001: unresolved external symbol "float Physics::sleepEpsilon" ([email protected]@@3MA) 
1>C:\...\Physics\Debug\Physics.exe : fatal error LNK1120: 1 unresolved externals 
+2

은 더 많은 정보와 함께 좋을 것입니다. 아마도 – chikuba

+0

오류 복사본을 시도해보십시오. namespace Physics {extern real sleepEpsilon; } – marcinj

+0

@luskan 네임 스페이스에 정의되어 있으며 네임 스페이스에 대해 전역으로 간주되지만 짧은 예에서는 글자로 쓰여집니다. – gardian06

답변

1

확인 Core.h이있는 폴더 링커 - 아래 추가 라이브러리 디렉토리에있는 경우> 일반 프로젝트의 속성 페이지입니다. 이로 인해 대개 LNK2001 오류가 발생합니다.

+0

실제로 네임 스페이스/라이브러리를 만들고 있는데 링커는 네임 스페이스를 구현/확장하는 파일 사이에 있습니다. – gardian06

+0

DLL을 만드시겠습니까? 생성하려는 출력 파일의 형식은 무엇입니까? –

+0

명확한 포함을위한 네임 스페이스 및 해상도를 만들기 위해 상위 헤더를 참조하는 파일이있을 수 있으므로 명확한 대답은 네임 스페이스를 프로그램의 일부 파일로 취급하는 것입니다. – gardian06

관련 문제