我相信这是愚蠢的,但我得到这个链接器错误 undefined reference to insert_record
,这是一个函数在Operations.hpp中声明,在Operations.cpp中实现并在main中使用,我找不到是什么在这个makefile中是错误的。 也许一对休息的眼睛可以发现问题。 尽管正在创建对象,但似乎操作并未链接。链接错误/生成文件
OBJS = main.o Operations.o CDR.o TBucketList.o RBucketList.o DateTime.o HashTable.o
CC = g++
CXXFLAGS = -W -Wall -Wno-unused -pedantic -c -g
LDFLAGS = -W -Wall -Wno-unused -pedantic -g
werhaus: $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o werhaus
main.o : CDR.hpp Operations.hpp HashTable.hpp
$(CC) $(CXXFLAGS) main.cpp
Operations.o : Operations.hpp HashTable.hpp
$(CC) $(CXXFLAGS) Operations.cpp
TBucketList.o : TBucketList.hpp RBucketList.hpp
$(CC) $(CXXFLAGS) TBucketList.cpp
RBucketList.o : RBucketList.hpp
$(CC) $(CXXFLAGS) RBucketList.cpp
HashTable.o : HashTable.hpp TBucketList.hpp
$(CC) $(CXXFLAGS) HashTable.cpp
CDR.o : CDR.hpp DateTime.hpp
$(CC) $(CXXFLAGS) CDR.cpp
DateTime.o : DateTime.hpp
$(CC) $(CXXFLAGS) DateTime.cpp
clean:
\rm *.o werhaus
更新: main.cpp中:
insert_record(originator_number, aCDR, destination_number, hashtable1, hashtable2, BucketSize);
Operations.hpp:
void insert_record(const char*, CDR*, const char*, const Hashtable*, const Hashtable*, int);
Operations.cpp:
void insert_record(const char* originator_number, CDR* aCDR, const char* destination_number, Hashtable* hashtable1, Hashtable* hashtable2, int Bsize)
所有主似乎很好..
“我得到这个链接错误” - 什么链接错误? –
对不起我的愚蠢:D。编辑! –
偏离主题,但...你的makefile依赖似乎有点奇怪。例如,你可以指定'HashTable.o'对各种头文件的依赖关系,而不是对'HashTable.cpp'的依赖 - 而对'OBJS'中指定的其他文件也是如此。 –