Ошибка «множественного определения» в C++ с отдельным определением и объявлениемC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка «множественного определения» в C++ с отдельным определением и объявлением

Сообщение Anonymous »

Итак, у меня есть файл заголовка со следующим кодом:

Код: Выделить всё

#ifndef banana_h
#define banana_h

#include 

std::string foo(std::string a);
std::string bar(std::string b);

#endif
и соответствующий файл C++:

Код: Выделить всё

#include "banana.h"
#include "../grape.h"
#include "../apple.h"

using std::string;
using std::vector;

string foo(string a)
{
// Lots of stuff in here...
}
string bar(string b)
{
// Lots of stuff in here...
}
Я связал Banana.h с другим файлом и скомпилировал их в один двоичный файл, но он продолжает выдавать мне такие вещи:

Код: Выделить всё

banana.cpp:(.text+0x2ed): multiple definition of `foo(std::__cxx11::basic_string)'; ./headers/banana.o:banana.cpp:(.text+0x2ed): first defined here
Я пробовал использовать «inline» и множество других вещей, например изолировать «foo» и «bar», но ничего из этого не работает.
Примечание: я использую make-файл для компиляции всех своих файлов.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... eclaration
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»