Visual C++ 2010/2013의 linker bug

Visual c++ 2010, 2013에는 “unresolved external symbol” linking bug가 있다 -_-;; 그렇다, 2013에서도 사라지지 않은 문제이다.

다음과 같은 세 가지 케이스가 아니라면 & 어쩔 땐 되고 어쩔 땐 안 된다면 linking bug를 의심해보자.

1. Template class의 method definition을 .h가 아니라 .cpp에 넣어두었다. <= template class의 method definition은 .h에 있어야 한다. Visual c++에선 definition이 cpp에 있어도 가끔씩 링킹이 된다 -_-;

2. signature가 안 맞는다. 특히 function name의 오타자 / scope / “&” / const 위치 주의

 

아무리 해봐도 linking error가 풀리지 않는다면.. 내가 찾은 야매를 공개하자면 :

1. 해당 method가 정의된 .cpp 파일을 오른쪽 클릭한 뒤 “컴파일” 해 본다.

2. 솔루션 clear 한 다음 rebuild / build 해본다.

3. 이건 본인이 아주 즐겨쓰는 방법인데 ㅡㅡ; method가 정의된 cpp 파일에다 “using namespace std;”를 추가한다.

링킹 에러가 사라졌다가 다시 생긴다면 “using namespace std;”를 주석처리해본다.(…)

 

3번 방법은 특히 아주 짜세이다..

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s