Я не могу избавиться от этих, казалось бы, случайных ошибок компиляции в одном из моих классов.
Я получаю около 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
строк.h, и в начале есть предложение #ifndef
. Все эти ошибки появляются в файле .cpp.
Есть идеи, что бы это могло быть?
Хорошо, я получил код:
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, но, похоже, это ни на что не влияло.