C++ 架构x86_64的未定义符号:使用头文件中定义的结构

C++ 架构x86_64的未定义符号:使用头文件中定义的结构,c++,xcode,oop,C++,Xcode,Oop,我正在使用xcode 4.2构建这个简单的程序。我知道有很多关于这个错误的帖子,但我没有找到任何能回答我问题的帖子。 我收到了一个我不理解的错误。 以下是编译输出: Ld/Users/kotoko/Library/Developer/Xcode/DerivedData/stw gyleohvghcrywgcqkihkkkqenl/Build/Products/Debug/stw normal x86_64 cd/Users/kotoko/projectos/SomethingTower/stw\

我正在使用xcode 4.2构建这个简单的程序。我知道有很多关于这个错误的帖子,但我没有找到任何能回答我问题的帖子。
我收到了一个我不理解的错误。
以下是编译输出:

Ld/Users/kotoko/Library/Developer/Xcode/DerivedData/stw gyleohvghcrywgcqkihkkkqenl/Build/Products/Debug/stw normal x86_64 cd/Users/kotoko/projectos/SomethingTower/stw\U v6\U xcode/stw setenv MACOSX_部署_目标10.6 /Developer/usr/bin/llvm-g++-4.2-arch x86_64-isysroot/Developer/SDKs/MacOSX10.6.sdk-

L/Users/kotoko/Library/Developer/Xcode/DerivedData/stw gyleohvghcrywgcqkihkkkqenl/Build/Products/Debug -F/Users/kotoko/Library/Developer/Xcode/DerivedData/stw gyleohvghcrywgcqkihkkkqenl/Build/Products/Debug -filelist/Users/kotoko/Library/Developer/Xcode/DerivedData/stw-gyleohvghcrywgcqkihkkqeqnl/Build/mediates/stw.Build/Debug/stw.Build/Objects-normal/x86_64/stw.LinkFileList -mmacosx最小版本=10.6-o/Users/kotoko/Library/Developer/Xcode/DerivedData/stw gyleohvghcrywgcqkihkkqeqnl/Build/Products/Debug/stw

架构x86_64的未定义符号:“ClosetItem::lc”, 引用自: ClosetItem::ClosetItem.o中的ClosetItem(int) ClosetItem::ClosetItem.o ld:symbol中的ClosetItem(int)未找到体系结构x86_64 collect2:ld返回1退出状态

下面是代码(主文件现在甚至不调用此对象):

//
//ClosetItem.h
//stw
//
#如果没有,请关闭
#定义stw_ClosetItem_h
#包括
类泄漏检查器{
整数计数;
公众:
LeakChecker():计数(0){}
无效打印(){

std::cout您尚未初始化您的
静态成员:

class ClosetItem{

public:
    ClosetItem(int identifier);
    virtual ~ClosetItem() {};


protected:
    static LeakChecker lc;  // <-- uninitialized
};
类ClosetItem{
公众:
ClosetItem(int标识符);
虚拟~ClosetItem(){};
受保护的:

静态泄漏检查器lc;//您尚未初始化您的
静态
成员:

class ClosetItem{

public:
    ClosetItem(int identifier);
    virtual ~ClosetItem() {};


protected:
    static LeakChecker lc;  // <-- uninitialized
};
类ClosetItem{
公众:
ClosetItem(int标识符);
虚拟~ClosetItem(){};
受保护的:

静态LeakChecker lc;//p>您声明了一个静态的泄漏检查变量,但需要实现它。在C++文件中,添加:


<> >代码> LeakChecker ClosetItem::LC;

> p>您已经声明了一个静态泄漏检查变量,但需要实现它。在C++文件中添加:


LeakChecker ClosetItem::lc;

您尚未实际定义
lc
静态对象。您需要类似以下内容:

LeakChecker ClosetItem::lc;

您尚未实际定义
lc
静态对象。您需要类似以下内容:

LeakChecker ClosetItem::lc;

坚持,从外观上看,这是一个链接器问题,而不是一个编译器问题。坚持,从外观上看,这是一个链接器问题,而不是一个编译器问题。天哪,我觉得很傻…XD谢谢,不管怎样,我觉得很傻…XD谢谢