У меня есть файл Cache.cpp, который имеет соответствующий заголовочный файл Cache.h, и другой файл NetFunctions.cpp, который имеет соответствующий заголовочный файл NetFunction.h.
У меня есть make-файл, который выглядит следующим образом
all: net cache
g++ main.cpp ../obj/NetFunctions.o ../obj/Cache.o -o ../bin/main
net: NetFunctions.cpp
g++ -c NetFunctions.cpp -o ../obj/NetFunctions.o
cache: Cache.cpp net
g++ -c Cache.cpp ../obj/NetFunctions.o -o ../obj/Cache.o
Теперь в NetFunctions.cpp определена функция getNFHTML (string), которая используется в Cache.cpp.Я проверил заголовочные файлы, и они отлично смотрятся со всеми функциями, объявленными там, и правильно включены заголовочные файлы.
Однако, когда я делаю, я получаю следующую ошибку компоновщика
../obj/Cache.o: In function `Cache::getHTML(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
Cache.cpp:(.text+0x19ee): undefined reference to `getNFHTML(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
collect2: ld returned 1 exit status
make: *** [test] Error 1***
Может кто-то помочь мне с этим?В чем проблема?
Я также ссылался на этот пост C ++ Ошибка связи , но она мне не помогла.
Редактировать
Вот код: NetFunctions.h
#ifndef NET
#define NET 1
#include "commons.h"
bool serv_bind(struct addrinfo **servinfo, struct addrinfo **p, int *sockfd, int *yes);
void* get_in_addr(struct sockaddr *sa);
string getNFHTML(string website);
string saveHeaders(string);
//bool getNFHTML(string request, string last_modified, string *response);
extern bool useCache;
#endif
NetFunctions.cpp
#include "NetFunctions.h"
string getNFHTML(string request)
{
// a lot of code
}
Cache.cpp
#include "NetFunctions.h"
#include "Cache.h"
string Cache::getHTML(string request)
{
//some code
string response = getNFHTML(request);
//some code
}
Я удалил файлы, так как они содержали несколькосто строк