Keil: определение inline-функции приводит к ошибке L6218E |
|
Добавил(а) microsin
|
Определение inline функции в заголовке без модификатора static приводит к ошибке линкера L6218E.
Пример:
inline void DEBUG_CHECK (uint32_t errorcode)
{
while(errorcode != NRF_SUCCESS)
{
LED_ON();
nrf_delay_ms(50);
LED_OFF();
nrf_delay_ms(50);
}
}
Сообщение об ошибке:
linking...
.\Objects\fw.axf: Error: L6218E: Undefined symbol DEBUG_CHECK (referred from main.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 1 error messages.
Добавление ключевого слова static к определению inline-функции устраняет ошибку:
static inline void DEBUG_CHECK (uint32_t errorcode)
{
...
|