2013-07-11 2 views
2

Я работаю с Atmel Studio 6 и имею проблему с реализацией C++. Я определил новый проект, выбрал вариант C++ и добавил новый класс, который создавал файлы классов (.cpp и .h), как и ожидалось, но когда я открываю файл .h, выделяется строка «класс LED» (условие ошибки), и ошибка говорит «неизвестный тип класса»Atmel Studio 6, проблемы на C++ с неизвестным типом «класс»

Любые идеи о том, что может быть неправильным? Я понятия не имею.

+0

Вы действительно имеете в виду «.ccp»? Что произойдет, если вы переименуете его «.cpp»? –

+0

Интересно, может ли быть [этот вопрос] (http://stackoverflow.com/questions/16955806/how-to-add-c-and-h-files-to-atmel-studio-6). OP получал ошибки «неизвестного типа», а затем выяснял, что из-за отсутствующих включенных операторов в cpp. Однако это связано с фактическим кодом и ссылками, которые, по-видимому, ваш новый класс не имеет? – criticalfix

ответ

1

«Неизвестный тип класса» предполагает, что компилятор взял «класс» в качестве имени, что могло бы предположить, что для вашего исходного кода потребовался C не C++.

Это, в свою очередь, предполагает, что, возможно, вы ошиблись или замаскировали расширение файла и не смогли установить имя файла .cpp. На самом деле, вы написали, что вы назвали файл .ccp - попробуйте сначала исправить это. (обратите внимание на cCp против cPp). Это довольно часто, когда вы начинаете писать на C++. Меморандум: C++ -> CPP: P обозначает «+», «плюс».

+0

Спасибо, это имеет смысл, но я фактически использовал функцию создания нового класса из меню, а Atmel Studio создала файлы cpp и header. Я открыл файлы после создания и нашел ошибки, о которых я упоминал. – Tim

+0

Очень странно. Таким образом, расширение является правильным, но на самом деле это всего лишь намек на компилятор. С неправильными настройками файл по-прежнему можно рассматривать как C-lang, но поскольку они были сгенерированы средой IDE для «класса», мы можем предположить, что параметры проекта верны. – quetzalcoatl

+0

Еще одна распространенная проблема на C++ заключается в том, что компиляторы сообщать об ошибках в файлах CPP, пока фактическая ошибка находится в файле # include'd .h/.hpp - это потому, что #include работает почти одинаково с копированием и вставкой, поэтому любые синтаксические ошибки в .h/.hpp могут «вытечь» в файл, который их включил. Пожалуйста, тщательно изучите все заголовочные файлы # include'd и найдите любые проблемы синтаксиса, такие как отсутствующие точки с запятой ';' или закрывающие скобки '}', особенно в конце файла .H. Другой - отсутствует #endif, mistyped #define и т. Д. Если возможно, укажите код, возможно, кто-то обнаружит это. – quetzalcoatl

1

Файл, содержащий main(), также должен заканчиваться на .cpp, но AVR Studio (6.2) создает одно завершение на .c. Создайте новый .cpp-файл (добавьте новый элемент), переместите main() и весь другой код из старого файла в новый файл и удалите старый. Недостаточно изменить окончание старого с .c на .cpp.

0

Это мои советы:

Гото Project -> [имя вашего проекта] Свойства -> Toolchain -> AVR/GNU C++ компиляторы -> Каталоги -> Добавить папку, содержащую .cpp, как относительный путь в Include Paths (-I) -> goto Project снова -> Выберите «Добавить существующий элемент» -> перейдите в свою .cpp папку -> выберите файл .cpp -> нажмите стрелку вниз в кнопке «Добавить» -> выберите «Добавить как ссылку» '

затем РЕКОМЕНДУЕТ вам проекты!

Смежные вопросы