Ошибка отображается в Clion "множественное определение" - PullRequest
0 голосов
/ 19 февраля 2020
using namespace std;

class Student{

public:

    int rollNumber;

    int age;

    static int totalStudents;

};

int Student :: totalStudents = 0;


int main() {

    cout<<Student :: totalStudents << endl;

    return 0;
} 

Почему я получаю эту ошибку в Clion? Кажется, код работает нормально на других сетевых IDE.

Вот сообщение об ошибке, которое я получаю:

CMakeFiles \ OOPS2.dir / objects.a (Student. cpp .obj): Student. cpp :(. bss + 0x0): множественное определение `Student :: totalStudents '

CMakeFiles \ OOPS2.dir / objects.a (main. cpp .obj) : main. cpp :(. data + 0x0): сначала определено здесь collect2.exe: ошибка: ld вернул 1 состояние выхода mingw32-make.exe [3]: * [CMakeFiles \ OOPS2.dir \ build. make: 115: OOPS2.exe] Ошибка 1 mingw32-make.exe [2]: [CMakeFiles \ Makefile2: 75: CMakeFiles / OOPS2.dir / all] Ошибка 2 mingw32-make.exe 1 : [CMakeFiles \ Makefile2: 82: CMakeFiles / OOPS2.dir / rule] Ошибка 2 mingw32-make.exe: * [Makefile: 117: OOPS2] Ошибка 2

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

На скриншоте вы компилируете два файла Student.cpp и main.cpp. Кажется, они дублировали код.

1 голос
/ 20 февраля 2020

Может быть, в вашем Makefile есть два файла, а именно Student. cpp и main. cpp (как указано в сообщении об ошибке)? Если они находятся в одном и том же Makefile или проекте или связаны между собой или включают / ссылаются друг на друга, то это неудивительно.

...