Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
Решаю задачу написания программы в HMIWorks для ICPDAS TPD-xxx. Поскольку редактор там г***о (даже поиска нет) и отладчика нет, а писать много - написал все структуры и функции по их обработке QtCreator. Чтобы потом их просто вставлять в обработчики событий в самой HMIWorks. Расширения всех файлов исходников заменил на .c, чтобы вызвывался gcc, а не g++. Скомпилировал gcc в QtCreator. Эти-же самые файлы, подключаю к HMIWorks, прописываю их в файле проекта, т.к. добавлять существующие файлы из графического интерфейса пользователя она не умеет. Пытаюсь скомпилировать (devKitArm arm-eabi-gcc) и получаю ошибки: arm-eabi-gcc CC main.c CC _frame0.c CC _frame1.c CC _frame2.c CC _dict.c CC ladder.c CC ../shared/structs.c CC ../shared/activeguielement.c CC ../shared/extflash.c CC ../shared/guicommon.c In file included from ./_frame0.h:4, from ./HMIWorks.h:61, from ../shared/extflash.h:5, from ../shared/guicommon.h:4, from ../shared/guicommon.c:1: ./../shared/activeguielement.h:24: error: expected specifier-qualifier-list before 'Geometry16' In file included from ./_frame0.h:14, from ./HMIWorks.h:61, from ../shared/extflash.h:5, from ../shared/guicommon.h:4, from ../shared/guicommon.c:1: ./../shared/simplebitmap.h:13: error: expected specifier-qualifier-list before 'Geometry16' ./../shared/simplebitmap.h:15: warning: struct has no members make.exe: *** [../shared/guicommon.o] Error 1 guicommon.h: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. extflash.h: Код: plaintext 1. 2. 3. 4. 5. 6. simpleBitmap.h: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. activeguielement.h: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Что не так? Не понимаю. Целый день убил. Благодарен за любую помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 17:02 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
DymanovskyЧто не так? Не понимаю. У тебя Geometry16 объявлен после include в котором он используется. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 17:26 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
По подробнее, можно, пожалуйста. Возможно-ли обойтись forward declaration или что надо делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 18:00 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
Dymanovskyчто надо делать? Или перенести объявление выше, или инклуд - ниже. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 18:12 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
Можете указать конкретно, что и куда. Никогда с такой заразой не сталкивался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 18:16 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
DymanovskyМожете указать конкретно, что и куда. Никогда с такой заразой не сталкивался. Вы никогда не сталкивались с тем, что типы надо объявлять ДО использования?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 18:56 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
В QtCreator всё компилируется. Вначале пишу все необходимые #include. Значит, как я понимаю, всё объявлено. Далее использую те типы, которые описаны в подключённых выше #include. Поэтому не могу понять, почему не объявлено? Я же #include написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 08:21 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
Методом случайных перестановок, эту проблему решил. Но появились другие. Какой принцип правильного размещения #include? в с++ таких проблем никогда не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 09:05 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
DymanovskyМетодом случайных перестановок, эту проблему решил. Но появились другие. Какой принцип правильного размещения #include? в с++ таких проблем никогда не было. Проблема в том, что правильного принципа нет. Есть тул -- препроцессор -- и человек, и этот человек должен знать, что делает, когда использует этот тул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:15 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
Dymanovskyarm-eabi-gccIn file included from ./_frame0.h:4, from ./HMIWorks.h:61, from ../shared/extflash.h:5, from ../shared/guicommon.h:4, from ../shared/guicommon.c:1: Не хватает исходников HMIWorks.h и _frame0.h для точной диагностики. Но кажется, у вас из HMIWorks.h инклудится _frame0.h, из которого еще инклудится например activeguielement.h Но при этом компиляция guicommon.h дошла только до строки #include "extflash.h" Строчка #define GUICOMMON_H отработала но структуры еще не определены. Дальше по цепочке вложенных инклудов попали на activeguielement.h Из него снова инклудится guicommon.h, проскакивает его по #ifndef GUICOMMON_H Структуры по прежнему не определены. Вот вам и ошибка. DymanovskyКакой принцип правильного размещения #include? Избегать циклического включения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:23 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
Примерно понял, но внутри меня так и осталось некоторое недопонимание. Помог этот вопрос: http://stackoverflow.com/questions/705676/how-does-inclusion-of-header-file-happen Поступил по следующему правилу. Если в заголовочном файле определена структура, в состав которой входит другая структура, определённая вне этого файла, то перед первой структурой делаем предварительное объявление 2-й, объявляем 2-ю в 1-й как указатель. Подключаем все #include после определения 1-й структуры. Я обожаю С++! В нём нет такого идиотизма. После 2-х дней борьбы с компилятором, наконец-таки скомпилировал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 19:51 |
|
||
|
C. Не компилируется под arm-eabi-gcc
|
|||
|---|---|---|---|
|
#18+
DymanovskyЯ обожаю С++! В нём нет такого идиотизма.есть. В этом смысле оба языка ничем не отличаются ))) да и не идиотизм это вовсе. с первым утверждением - согласен ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 22:04 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38460117&tid=2019877]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 258ms |

| 0 / 0 |
