이 간단한 프로그램을 작성하기 위해 xcode 4.2를 사용하고 있습니다. 이 오류에 많은 게시물이 있다는 것을 알고 있지만 내 문제에 대한 답변을 찾지 못했습니다.
내가 이해하지 못하는 오류가 발생했습니다.아키텍처에 대한 정의되지 않은 기호 x86_64 : 헤더 파일에 정의 된 구조 사용
여기LD/사용자/kotoko/라이브러리/개발자/엑스 코드/DerivedData/STW-gyleohvghcrywgcqkihhkkkqeqnl/제품/디버그/STW 일반 x86_64에 CD/사용자/kotoko/projectos// 제작 :
여기 는 컴파일 출력 somethingToWear/stw_v6_xcode/STW 에서는 setenv MACOSX_DEPLOYMENT_TARGET 10.6 /Developer/usr/bin/llvm-g++-4.2 -arch x86_64에 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/사용자/kotoko/라이브러리/개발자/Xcode/DerivedData/stw-gyleohvghcrywgcqkihhkkkqeqnl/빌드/제품/디버그 -F/사용자/kotoko/라이브러리/개발자/Xcode/DerivedData/stw-gyle ohvghcrywgcqkihhkkkqeqnl/빌드/제품/디버그 -filelist/사용자/kotoko/라이브러리/개발자/Xcode/데비안 데이터 건축 x86_64에 대한 -mmacosx 버전 - 분 = 10.6 -o/사용자/kotoko/라이브러리/개발자/엑스 코드/DerivedData/STW-gyleohvghcrywgcqkihhkkkqeqnl/구축/제품/디버그/STW
정의되지 않은 심볼 : "ClosetItem :: LC " 은에서 참조 : ClosetItem.o에 ClosetItem :: ClosetItem (INT) ClosetItem :: ClosetItem ClosetItem.o의 LD에서 (INT) : 기호 (들) 아키텍처 x86_64에의 collect2 찾을 수 없습니다 : 신분증 1 종료 상태
를 반환
는 (심지어이를 호출하지 않습니다 주 파일이 지금 객체) 코드입니다 :
이//
// ClosetItem.h
// stw
//
#ifndef stw_ClosetItem_h
#define stw_ClosetItem_h
#include <iostream>
class LeakChecker {
int count;
public:
LeakChecker() : count(0) {}
void print() {
std::cout << count << std::endl;
}
~LeakChecker() { print(); }
void operator++(int) { count++; }
void operator--(int) { count--; }
};
class ClosetItem{
public:
ClosetItem(int identifier);
virtual ~ClosetItem() {};
protected:
static LeakChecker lc;
};
#endif
//
// ClosetItem.cpp
// stw
//
#include "ClosetItem.h"
#include <iostream>
ClosetItem::ClosetItem(int identifier){
lc++;
std::cout<<"ClosetItem #";
lc.print();
}
사람이 문제를 제발 지적 할 수 있습니까?
class ClosetItem{
public:
ClosetItem(int identifier);
virtual ~ClosetItem() {};
protected:
static LeakChecker lc; // <-- uninitialized
};
당신은 구현 파일에 초기화해야합니다 : 당신은 정적 LeakChecker 변수를 선언하지만, 그것을 구현할 필요가있다
//ClosetItem.cpp
LeakChecker ClosetItem::lc; // <-- definition
Stictly, 이것은 링커로 보이기보다는 컴파일러 문제입니다. –