Компилировать ошибки с одним проектом только после добавления второго проекта

У меня есть решение в VS2012, которое хорошо компилируется. Я хотел написать несколько юнит-тестов для него и нашел WinUnit.

Для простоты я включил тестовый проект WinUnit в свое решение.

Я удалил их пример файла и начал ссылаться на свою копию Google diff_match_patch, которую я хотел протестировать.

Как только я добавляю файл.h в свой проект и компилирую, я получаю 3 ошибки в файле diff_match_patch. Этот файл скомпилирован очень хорошо, прежде чем я добавил новый проект.

Ошибка 3 ошибка C2059: синтаксическая ошибка: '(' ...\diff_match_patch.h 103 1 TestSampleLib

Ошибка 4, ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '}' ...\diff_match_patch.h 104 1 TestSampleLib

Ошибка 5 ошибка C2238: неожиданный токен (ы), предшествующий ';' ...\diff_match_patch.h 104 1 TestSampleLib

Все ошибки сосредоточены вокруг этого кода:

enum Operation {
   DELETE, INSERT, EQUAL
};

Я думал, что это может быть какая-то ссылка, которую я пропускаю, но я добавил все, что могу придумать, и он все еще не работает при компиляции.

Это единственные ошибки, которые я получаю, поэтому я не могу понять причину.

Что может привести к сбою этого файла?

1 ответ

Решение

Похоже, макрос называется загрязнением. Вы можете попробовать #undef всех имен непосредственно перед определением enum и посмотреть, что произойдет.

Другие вопросы по тегам