声明但未定义的静态方法错误c ++

时间:2013-06-23 18:55:29

标签: c++

我在类中有一个静态方法,如下文所示 Convert.h

class Convert
{
    public :
    static string convertIntToStr(unsigned int integer);    
};

Convert.cpp

string 
Convert::convertIntToStr(unsigned int integer) 
{
    ostringstream ostr;
    ostr <<  integer;
    return ostr.str();
}

我在另一个.cpp文件中的其他类方法中使用它作为Convert::convertIntToStr,但是我得到了链接错误,它表示对Convert::convertIntToStr(unsigned int)的未定义引用。你能告诉我可能出现的问题吗?

1 个答案:

答案 0 :(得分:0)

使用多个cpp文件,您必须将编译的目标文件链接到可执行文件。在像eclipse CDT或Visual stdio这样的IDE中,它已经为你完成了。

要自己编译和链接,例如使用gcc编写Makefile

CC=g++
CPPFLAGS=-fPIC -Wall -g -O2
all:executable

executable: convert.o other.o 
    $(CC)  $(CPPFLAGS) -o $@ $^

convert.o: convert.cpp
    $(RC) $^

other.o: other.cpp
    $(CC) -o $@ -c $^



.PHONY:clean

clean:
    rm *.o executable