我在类中有一个静态方法,如下文所示 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)
的未定义引用。你能告诉我可能出现的问题吗?
答案 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