Ошибки компоновщика LNK2005 LNK1169

296
01 мая 2018, 01:27

Решил попробовать поэкспериментировать создать проект, записав функцию в отдельный файл, однако произошла для меня неведомая ошибка. Тестировал я это на нескольких компиляторах и ошибка та же, следовательно проблема в моем коде.

Source.cpp

#include <iostream>
#include "Header.h"
#include "func.cpp"
int main() {
    int num, expotent;
    std::cout << "Enter the number: ";
    std::cin >> num;
    std::cout << "Enter the expotent";
    std::cin >> expotent;
    std::cout << exponentiation(num, expotent);
}

Header.h

#ifndef HEADER_H
#define HEADER_H
long long int exponentiation(int x, int y);
#endif

func.cpp

#ifndef FUNC_CPP
#define FUNC_CPP
#include "Header.h"
long long int exponentiation(int x, int y) {
    if (y == 0) {
        return 1;
    }
    for (int c = 1; c == y; c++) {
        x *= x;
    }
    return x;
}
#endif // !FUNC_CPP

Как я понял ошибка происходит из-за того, что функция exponentiation определяется несколько раз, хотя почему это происходит, понять не могу.

Подробности ошибки:

LNK1169 обнаружен многократно определенный символ - один или более  deleeeeteeee    C:\Users\Ivan\source\repos\deleeeeteeee\Debug   C:\Users\Ivan\source\repos\deleeeeteeee\Debug\deleeeeteeee.exe  1   
LNK2005 "__int64 __cdecl exponentiation(int,int)" (?exponentiation@@YA_JHH@Z) уже определен в func.obj  deleeeeteeee    C:\Users\Ivan\source\repos\deleeeeteeee\deleeeeteeee    
Answer 1

Беда в том, что вы зачем-то включаете func.cpp в source.cpp:

#include "func.cpp"

В результате у вас есть exponentiation и в func.obj, и в source.obj, и компоновщик не знает, какой предпочесть.

Уберите указанную строку из source.cpp.

READ ALSO
Как устанавливать размер терминала ncurses

Как устанавливать размер терминала ncurses

Возможно ли на ncurses установить размер терминала, в котором выполняется программа?

196
Полный код встроенной функции sort в js

Полный код встроенной функции sort в js

Где можно найти полный код встроенной функции sort в js? Вот например код map из книги "Выразительный JavaScript":

189
помощь по js помогите пожалуйста

помощь по js помогите пожалуйста

Всем привет,помогите пожалуйста,есть вот такой массив данных

236
Как получить имена все товаров ?

Как получить имена все товаров ?

Хочу получить только имена объектов (cat, dog, bird)

203