Страница 1 из 1

Как в Keil создавать многофайловый проект?

Добавлено: Пт дек 12, 2025 19:48:56
trek1203
Вроде по коду я ошибок не вижу, но тем не менее пишет что есть ошибки.

Добавлено after 10 minutes 7 seconds:
\\\\ main.c
#include "main.h"

int main(void){
INIT();




while(1);
return 0;
}

\\\ main.h
#ifndef MAIN_H
#define MAIN_H

#include <stdint.h>
#include "FM33A0XXEV.h"

#include "init.h"


#endif


\\\init.c
#include "init.h"
#include <stdint.h>
#pragma GCC diagnostic ignored "-Wgnu-binary-literal"

void INIT(void){
rcc();


}

void rcc(void){
CMU->RCHFCR |= (0b0001U << 1);


}


\\\init.h
#ifndef MAIN_H
#define MAIN_H

#include "main.h"

void INIT(void);
void rcc(void);







#endif



\\\ Ошибка
Build started: Project: test
*** Using Compiler 'V6.19', folder: 'C:\Programs\keil\ARM\ARMCLANG\Bin'
Build target 'Target 1'
init.c(12): error: use of undeclared identifier 'CMU'
CMU->RCHFCR |= (0b0001U << 1);
^
1 error generated.
compiling init.c...
main.c(4): error: call to undeclared function 'INIT'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
INIT();
^
1 error generated.
compiling main.c...
compiling system_FM33A0XXEV.c...
".\test.axf" - 2 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:01

Re: Как в Keil создавать многофайловый проект?

Добавлено: Пт дек 12, 2025 20:08:55
smacorp
Компилятор Вам показал не только строки, в которых ошибки, но описал эти ошибки и "носом ткнул", нарисовав стрелки.

Вот первая:

init.c(12): error: use of undeclared identifier 'CMU'
CMU->RCHFCR |= (0b0001U << 1);
^

Вторая по аналогии.


Вы вряд ли найдёте помощь на форуме - вряд ли найдётся желающий удалённо и по шагам объяснять, как работают компиляторы, как они ищут подключаемые файлы и т.д., особенно, учитывая, что Ваш уровень, похоже, "очень начинающий".

Выход - запастись переводчиком Eng -> Rus и какой-нибудь инструкцией (и не одной). Их полно по данной тематике, начиная со встроенной помощи в сам Keil. Проявив терпение и настойчивость, разберётесь - все через это проходили, и никому нахрапом победить настройки компилятора ещё не удавалось.

Re: Как в Keil создавать многофайловый проект?

Добавлено: Пт дек 12, 2025 20:18:37
Enigm
Можете эту ошибку скормить ИИ , Он по ошибкам кейла отлично рассказывает.

Re: Как в Keil создавать многофайловый проект?

Добавлено: Вс дек 21, 2025 01:08:28
kolobok0
[uquote="trek1203",url="/forum/viewtopic.php?p=4771849#p4771849"]....[/uquote]

Вы заголовок написали одно, в теле ошибку компилятора воткнули.

Кеил, да и все другие подобные среды, замечательно жрёт многофайловость, многомодульность, много проектность, многотаргевость.

Несколько файлов - тупо указываете в дереве проекта, он их все добросовестно будет пытаться компилять.
Если нужно сделать инклюд внутри программы - то Ваш инклюдный файл должен быть по пути поиска (строка компилятора для инклюдников). Можно указать как свои, так и из других модулей.


удачи Вам
(круглый)