Получаю ошибку «множественное определение», и я понятия не имею, почему [дубликат]C++

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

Сообщение Anonymous »

Я знаю, что это распространенный и частый вопрос. Я работаю над кодом Visual Studio и для удобства использую расширение Code-Runner. Рабочее дерево моего проекта следующее:

Изображение


Я пытаюсь скомпилировать файл Serial.cc (основной), используя следующую настройку средства запуска кода, учитывая то, что указано здесь:

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

"cpp": "cd $dir && g++ -Wall -fopenmp $fileName utilities/*.cc -o $fileNameWithoutExt.o && $dir$fileNameWithoutExt.o"
Следующие файлы включают в себя:
  • serial.cc #include "utilities /CSVIterator.h"
  • CSVIterator.h #include "CSVRow.h"
  • CSVRow.h #include "utility.h"
Я получаю ошибку «множественного определения», вызванную CSVRow.cc и утилитой. cc перечисляет ряд функций (а именно каждую функцию, определенную в строке, а не с использованием ключевого слова inline внутри утилиты.h), которые компилятор видит уже определенными в сериальном.cc .
Например. внутри утилиты.h у меня есть:

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

double cpuSecond()
{
struct timeval tp;
gettimeofday(&tp, NULL);
return ((double)tp.tv_sec + (double)tp.tv_usec * 1.e-6);
}
Проблема устранена, если:


[*]Я определяю КАЖДУЮ функцию внутри соответствующего файла . cc.
[*]Я перемещаю КАЖДУЮ функцию в соответствующий файл .h и таким образом удаляю все исходные файлы, кроме основного (serial.cc).
< /ol>

Я понимаю, что этого слишком мало, чтобы понять, поэтому вот полный репозиторий GitHub. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/604 ... o-clue-why
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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