Я не могу избавиться от этих, казалось бы, случайных ошибок компиляции в одном из моих классов. Я получаю около 4 ошибок, таких как:
multiple definition of `draw_line(float, float, float, float)'
и
multiple definition of `near_far_clip(float, float, float*, float*, float*, float*, float*, float*)'
которые помечены в середине метода.
Я также последовательно получаю multiple definition of `stack'
в середине другого метода. stack
- глобальная переменная в совершенно другом файле. Это даже не упоминается в файле, в котором я получаю ошибку.
Я попытался выделить файл с ошибкой в файлы .h и .cpp(изначально был только .cpp), и ничего об ошибке не изменилось...
У меня нет повторяющихся методов. У меня есть только один #include
of lines.h, и в начале есть предложение #ifndef
. Все эти ошибки появляются в файле .cpp.
Любые идеи, что это может быть?
Хорошо, я получил код вверх:
The lines.cpp - это преобразованный файл .c, полученный мной от моего инструктора. Я включил make файл на всякий случай, потому что у меня всегда были проблемы с ним. Я также аннотировал точно, где ошибки были помечены в файле, но они кажутся довольно случайными, поэтому я не знаю, особенно ли это. Я отказался от файла .h, потому что он ничего не решал и не помогал. Я считаю, что легче будет найти ошибку без нее.
Вот запрошенный файл main.cpp (нет .h).
Я переделаю файл lines.h из-за, и я все еще получаю:
multiple definition of `draw_line(float, float, float, float)'
и
multiple definition of `near_far_clip(float, float, float*, float*, float*, float*, float*, float*)'
в файле lines.cpp, но ошибка multiple definition of `stack'
теперь находится в случайном месте в файле ThreeD.cpp(и теперь она отмечена комментарием). Обновление: Эта ошибка исправлена, и файлы были пересмотрены, чтобы показать это:
Я столкнулся с маркировкой некоторых внешних переменных extern, но это нисколько не повлияло.