реклама на сайте
подробности

 
 
> Попытка скомпилировать первую программу в CodeBlocks для ARM.
Oleg_IT
сообщение May 20 2011, 18:36
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Использую CodeBlocks 10.05 с компилятором Yagarto.
Создаю новый проект ARM Project, на очередном шаге «ARM evaluation board» не вижу своих ARM-ов (ARM926EJ-S(OMAP-L138, am1808) и LPC2478). Может plugins какие для этого поставить нужно?
Есть библиотека, взятая из инета. При компиляции возникает ошибка

warning: 'always_inline' attribute ignored [-Wattributes]|
warning: type defaults to 'int' in declaration of 'inline' [-Wimplicit-int]|
warning: 'const' attribute ignored [-Wattributes]|
error: expected ',' or ';' before 'uint16_t'

на строке
static av_always_inline av_const uint16_t bswap_16(uint16_t x)

# define av_const __attribute__((const))
# define av_always_inline __attribute__((always_inline)) inline
Как исправить?

Были рекомендации от Idle использовать С99. А как сказать компилятору, в CodeBlocks, что бы он именно по этому стандарту работал?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
Idle
сообщение May 20 2011, 19:39
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



знать не знаю, но google://codeblocs.c99 выдаёт
Цитата
very simple. In the project properties (right click over project->properties) click "Project's build options..." button, then in "Compiler settings" tab, click in "Other options" sub-tab. Type "-std=c99" in text area and thats all.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 23 2011, 08:04
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Как важно правильно вопрос задатьsm.gif Спасибо.
Но проблемы остались, в h файле в записях подобной этой

typedef union {
……………
} av_alias av_alias64;

ошибки
warning: command line option '-std=c++0x' is valid for C++/ObjC++ but not for C [enabled by default]
warning: command line option '-std=c++98' is valid for C++/ObjC++ but not for C [enabled by default]
warning: command line option '-std=c++0x' is valid for C++/ObjC++ but not for C [enabled by default]
warning: command line option '-std=c++98' is valid for C++/ObjC++ but not for C [enabled by default]
D:\..\intreadwrite.h|34|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'av_alias64'
D:\..\intreadwrite.h|41|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'av_alias32'
D:\..\intreadwrite.h|46|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'av_alias16'
D:\..\intreadwrite.h|183|error: conflicting types for 'av_alias'
D:\..\intreadwrite.h|182|note: previous declaration of 'av_alias' was here
D:\..\intreadwrite.h|184|error: conflicting types for 'av_alias'
D:\..\intreadwrite.h|182|note: previous declaration of 'av_alias' was here

Установка и снятие флажков «-std=c++0x» «-std=c++98» в конфигурации не помогает.
Go to the top of the page
 
+Quote Post
Bass
сообщение May 23 2011, 09:23
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 5-08-10
Из: Томск
Пользователь №: 58 761



Цитата
Установка и снятие флажков «-std=c++0x» «-std=c++98» в конфигурации не помогает.

а вы их где ставите/снимаете? если в settings->compiller and debuger, то уже надо смотреть в проект (project->build options), и возможно даже вручную убирать их из вкладки other options.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 23 2011, 09:56
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Лучше всё-таки использовать makefile sm.gif
Тогда не будет неопределённости.
В С::В есть два "комплекта настроек" - для проекта и для тулчейна в целом. И переключаемые приоритеты.
Так что смотрите внимательнее.

В makefile надо добавить CFLAGS += -std=gnu99


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 23 2011, 10:56
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Да, я уже обратил внимание, что там два комплекта настроек, флажки ставлю и снимаю синхронно.
В "Other options" ставлю и "-std=c99" и "-std=gnu99" не помогло.

Как я понимаю свой makefile выбирается в свойствах проекта во вкладке "Project settings" установкой флажка "This is a custom Makefile". Но проблема в том, что я структуру makefile плохо знаю, работал на всяких визартах.
Где посмотреть какой makefile сам CodeBlocks генерит?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 23 2011, 11:07
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Oleg_IT @ May 23 2011, 14:56) *
Где посмотреть какой makefile сам CodeBlocks генерит?

В корне проекта обычно лежит Makefile, а в папках - кусочки .mk


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 23 2011, 18:05
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Создал тестовый проект, скомпилил, но makefile в директории проекта и в поддиректориях нет.

Как я понимаю, целевой МК задаётся в той же вкладке “Other options” –cpu= (такая опция стоит в тестовом проекте). У меня это arm926ej-s. Но в документации на компилятор дано -mcpu=, там ещё -march= есть. В чем разница? Или это алиасы?
Не получается у меня преодолеть ошибки
D:\..\intreadwrite.h|34|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'av_alias64'
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016