Для дальнейшего использования вы должны поработать над тем, чтобы ваш пример был хорошим Минимальный воспроизводимый пример .Это не только повысит вероятность того, что вы получите ответ о переполнении стека, но, скорее всего, сделает его таким, что вы сможете сами начать исправлять проблемы.
Например, это единственная функция, с которой у вас возникают проблемы:
#define countOps(n)
static long long opsCount;
void countOps(long n){
opsCount += n;
}
Если вы попытаетесь скомпилировать только это в файл .cpp
, это сработает, хотя и будет жаловаться на отсутствие точки входа.Итак, #include
должно быть причиной проблемы.Очевидный кандидат CountOps.hpp
, где это объявлено.В этом случае, если вы не #define
COUNT_OPS
, заголовок будет просто
#define countOps(n)
Так что если мы соединим эти две части вместе, у нас будет минимальный, воспроизводимый пример вашей ошибки компиляции:
#define countOps(n)
static long long opsCount;
void countOps(long n){
opsCount += n;
}
Другими словами, включенный файл пытается #define
убрать функцию countOps, и, реализуя ее, препроцессор превращает ваш код в
static long long opsCount;
void {
opsCount += n;
}
, что делаетне имеет смысла.Вы можете исправить это либо с помощью #define COUNT_OPS
перед включением CountOps.hpp
, либо просто не пытаясь создать эту функцию.Правильный путь зависит от того, как эта библиотека предназначена для использования.
Моя цель не в том, чтобы рассказать вам, как решить эту проблему, а, надеюсь, помочь вам понять, как обнаружить ее в будущем, чтобы вы моглипонять, что происходит, и почему это происходит, или, по крайней мере, помочь другим, пытающимся помочь вам.
И еще один последний момент: предположим, что ваши изображения никогда не будут видны.Мало того, что некоторые пользователи будут иметь проблемы с их просмотром, но другой пользователь, который ищет вашу проблему в будущем, не увидит ее, поэтому он извлекает уроки из того, что другие могут извлечь из вашего вопроса.Ваш компилятор выдаст эти ошибки в тексте на некотором уровне.Вы должны скопировать n-paste оттуда.