1

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

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

转换.cpp

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

我在另一个 .cpp 文件中的一些其他类方法中使用它作为Convert::convertIntToStr,但我得到链接错误,它说未定义的引用Convert::convertIntToStr(unsigned int)。你能告诉我有什么问题吗?

4

1 回答 1

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
于 2013-09-03T03:34:37.113 回答