Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: arm gcc как заставить работать include <> также как и include ""
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
yanvasiij
Вообщем изучаю компиляцию в GNU gcc под windows. Ситуация следующая: компилю файл system_stm32f4xx.c, который инклудит файл stm32f4xx.h, который в свою очередь инклудит stm32f407xx.h, который инклудит core_cm4.h, и который инклудит core_cmInstr.h, но делает это не через кавычки, а через угловые скобки:

Код
#include <core_cmInstr.h>


Компилю следующей командой:

Код
arm-none-eabi-gcc -mcpu=cortex-m4 -mlittle-endian -mthumb -c system_stm32f4xx.c -o system_stm32f4xx.o


В результате получаю: fatal error: core_cmInstr.h: no such file or directory. Файл core_cmInstr.h лежит в той же директории что и system_stm32f4xx.c. Если изменить скобки на кавычки все компилится исправно. Как заставить компилятор компилить без ошибок с угловыми скобками?
Obam
" Как заставить компилятор компилить без ошибок с угловыми скобками?"

Соблюдать расположение "инклюживаемых" файлов: "…" файлы ищутся в каталоге с текущим файлом; <…> файлы ищутся в системных каталогах.

https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html
yanvasiij
Цитата(Obam @ Aug 28 2015, 15:38) *
" Как заставить компилятор компилить без ошибок с угловыми скобками?"

Соблюдать расположение "инклюживаемых" файлов: "…" файлы ищутся в каталоге с текущим файлом; <…> файлы ищутся в системных каталогах.

https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html


Во-первых, спасибо за ссылку.

Во-вторых, такой вопрос. По ссылке, что Вы дали написано:

Цитата
#include <file>
This variant is used for system header files. It searches for a file named file in a standard list of system directories. You can prepend directories to this list with the -I option (see Invocation).


Из чего я понял, что можно переопределить папку с системными хедерами добавив параметр -I. Поэтому я попробовал следующее (хедеры переложил в папку inc в том же каталоге что и system_stm32f4xx.c):

Код
arm-none-eabi-gcc -mcpu=cortex-m4 -mlittle-endian -mthumb -I/inc -c system_stm32f4xx.c -o _output/system_stm32f4xx.o


Ошибка та же. Блин, ну не тащить же мне все эти хедеры в системные каталоги, я практически уверен, что есть средство заставить компилятор искать их там, где мне надо.
den_po
/inc находится в корневой директории
ViKo
Там всякие точечки и черточки участвуют в пути... rolleyes.gif
Aaron
вместо того, чтобы умничать - взяли бы да и сказали прямо, как правильно...
arm-none-eabi-gcc -mcpu=cortex-m4 -mlittle-endian -mthumb -I "./inc" -c system_stm32f4xx.c -o _output/system_stm32f4xx.o
yanvasiij
Цитата(Aaron @ Aug 28 2015, 17:33) *
вместо того, чтобы умничать - взяли бы да и сказали прямо, как правильно...
arm-none-eabi-gcc -mcpu=cortex-m4 -mlittle-endian -mthumb -I "./inc" -c system_stm32f4xx.c -o _output/system_stm32f4xx.o


Ох, спасибо Вам большое!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.