л.д.: дубликат символа

голоса
9

Я работаю над проектом школы, и я получаю некоторые странные ошибки с Xcode. Я использую функцию Textmate в Command + R, чтобы скомпилировать проект. Компиляция, кажется, работает хорошо, но связывание завершается с сообщением об ошибке, я не понимаю.

Выход л.д.:

л.д.: дублирование символов text_field (Std :: basic_istream> &) в /path/final/build/final.build/Release/final.build/Objects-normal/ppc/generics.o и / путь / финал / сборки / финал. строить / Release / final.build / Объекты-нормальный / PPC / main.o collect2: л.д. возвращается статус 1 выхода

Ниже мой файл io_functions.cpp Это единственная декларация text_field во всем проекте.

#include <string>
#include <iostream>
#include <iomanip>

using namespace std;

#ifndef ENDF
#define ENDF '|'
#define ENDR '\n'

/**
reads one field from a given input stream
Usage: var = text_field(in)
*/
string text_field(istream &in){
    string s;
    getline(in, s, ENDF);
    return s; 
}

long long_field(istream &in){
    return atol(text_field(in).c_str()); 
}

int int_field(istream &in){
    return atoi(text_field(in).c_str()); 
}

double double_field(istream &in){
    return atof(text_field(in).c_str()); 
}

#endif

Что происходит не так? По ряду причин я не хочу, чтобы отправлять весь источник моего проекта.

Задан 12/11/2008 в 02:17
источник пользователем
На других языках...                            


2 ответов

голоса
15

Моя первая мысль была , что вы в том числе дважды по команде компоновщика , но , как представляется, жалуясь , имеющий ту же функцию в main.oи generics.o.

Так это выглядит , как вы в том числе io_functions.cppфайл в main.cppи generics.cppкоторый является плохой идеей в лучшие времена.

Вы должны иметь файл заголовка (например, io_functions.h) , который определяет все , содержащееся в io_functions.cppи включить этот заголовок файла в двух других.

Ответил 12/11/2008 в 02:26
источник пользователем

голоса
3

Похоже, io_functions.cpp в настоящее время включены в два раза (один раз generics.cpp, один раз main.cpp).

Ответил 12/11/2008 в 02:22
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more