Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C++ в mdk-arm
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
paskal
Делаю первые шаги в Keil.
В начале просто пустой файл на С.
Создаю новый проект, соглашаюсь включит стартап файл.
Создаю файл main.c такого содержания:
Код
void SystemInit(void)
{
}
int main()
{
  return 0;
}

Копмилирую - все ОК, 0 ошибок, 0 предупреждений.
Потом в проекте правой кнопкой мыши на main.c вызываю меню Options for file 'main.c'
там меняю File type на C++ source file (а был просто С)
После этого перестает компилировать. Ошибка - ссылка на неописанную функцию SystemInit из ассемблерного файла.
Если в асме ее заремить, то компилируется, но это же не выход.
Как же работать на СРР в кейле?
smalcom
>> там меняю File type на C++ source file (а был просто С)
и зачем так делать?

Надо запомнить себе и чтобы остальные не забывали)))
Если С++ компилятор внезапно чего-то не находит, то значит гле-то пропущен extern "C". хи-хи
toweroff
Но, все-таки, лучше использовать такую конструкцию для универсальности хидера:
Код
#ifdef __cplusplus
extern "C" {
#endif

// Здесь исходный C-хидер с объявлениями extern


#ifdef __cplusplus
}
#endif
Сергей Борщ
Цитата(toweroff @ Jun 5 2014, 01:26) *
для универсальности хидера:
В данном случае речь шла об определении функции в файле исходного кода, а не о ее объявлении в заголовочном. Но совет годится и для случая определения.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.