Oleg_IT 0 20 мая, 2011 Опубликовано 20 мая, 2011 · Жалоба Использую 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, что бы он именно по этому стандарту работал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 20 мая, 2011 Опубликовано 20 мая, 2011 · Жалоба знать не знаю, но 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Как важно правильно вопрос задать:) Спасибо. Но проблемы остались, в 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» в конфигурации не помогает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bass 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Установка и снятие флажков «-std=c++0x» «-std=c++98» в конфигурации не помогает. а вы их где ставите/снимаете? если в settings->compiller and debuger, то уже надо смотреть в проект (project->build options), и возможно даже вручную убирать их из вкладки other options. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Лучше всё-таки использовать makefile :) Тогда не будет неопределённости. В С::В есть два "комплекта настроек" - для проекта и для тулчейна в целом. И переключаемые приоритеты. Так что смотрите внимательнее. В makefile надо добавить CFLAGS += -std=gnu99 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Да, я уже обратил внимание, что там два комплекта настроек, флажки ставлю и снимаю синхронно. В "Other options" ставлю и "-std=c99" и "-std=gnu99" не помогло. Как я понимаю свой makefile выбирается в свойствах проекта во вкладке "Project settings" установкой флажка "This is a custom Makefile". Но проблема в том, что я структуру makefile плохо знаю, работал на всяких визартах. Где посмотреть какой makefile сам CodeBlocks генерит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Где посмотреть какой makefile сам CodeBlocks генерит? В корне проекта обычно лежит Makefile, а в папках - кусочки .mk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oleg_IT 0 23 мая, 2011 Опубликовано 23 мая, 2011 · Жалоба Создал тестовый проект, скомпилил, но makefile в директории проекта и в поддиректориях нет. Как я понимаю, целевой МК задаётся в той же вкладке “Other options” –cpu= (такая опция стоит в тестовом проекте). У меня это arm926ej-s. Но в документации на компилятор дано -mcpu=, там ещё -march= есть. В чем разница? Или это алиасы? Не получается у меня преодолеть ошибки D:\..\intreadwrite.h|34|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'av_alias64' Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться