0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
1 | |
Как настроить Code::Blocks20.09.2016, 21:52. Показов 7692. Ответов 21
Метки нет (Все метки)
Всем доброго времени суток. Опишу суть проблемы. Пишу под AVR микроконтроллеры фирмы Atmel. Скачал и установил среду разработки Code::Blocks 16.01. До этого пользовался редактором кода VSM Studio от Labcenter Electronics Ltd. Release 1.0. В качестве компилятора использую WinAVR версия 20100110. При попытке скомпилировать простенький код, работающий с EEPROM (используется стандартная библиотека WinAVR), получаем ошибку в Code::Blocks, однако тот же самый код без проблем компилится в среде VSM Studio. Данная проблема наблюдается у меня на разных машинах (win7 x64 и x86), однако у коллеги этот код прекрасно компилируется в Code::Blocks (установочники Code::Blocks и WinAVR те же самые).
Прошу помочь в решении данной проблемы, а именно в настройке Code::Blocks. Скрины прилагаю, возможно это поможет. Если нужно что-то еще - пишите, постараюсь предоставить информацию.
0
|
20.09.2016, 21:52 | |
Ответы с готовыми решениями:
21
Как настроить Code::Blocks? Как настроить вывод ошибок в Code::Blocks? Code::blocks не настроить работу для кросс компиляции Code::Blocks - подсвечивать классы, как в VS |
413 / 148 / 48
Регистрация: 02.06.2016
Сообщений: 349
|
|
20.09.2016, 22:53 | 2 |
C Code::Blocks идет утилита Share Config она позволяет переносить настройки на другую машину.
0
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
22.09.2016, 20:16 [ТС] | 3 |
Завтра попробую...
Добавлено через 22 часа 27 минут Перенос настроек ничего не дал.
0
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
25.09.2016, 11:57 [ТС] | 4 |
Неужели никто не сталкивался с такой проблемой? Предлагайте варианты решения которые, на ваш взгляд, могут помочь решить проблему. Буду пробовать и отписываться в этой теме.
0
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
26.09.2016, 20:11 [ТС] | 7 |
Проблема в том, что у коллеги проект тоже строится... CodeBlocks, WinAVR установлены из одних и тех же инсталляторов, по одним и тем же путям, но у него строится, а у меня - нет. Настройки переносил - не помогает...
0
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
27.09.2016, 02:31 | 10 |
Предположу, что если у тебя ошибку линкер выдаёт, то не сделано то, что у меня на втором скрине в 9-ом посте (должна совпадать с такой же опцией компилятора). Это всё относится к случаю, если проект не AVR создан. Если AVR, то все эти (и не только эти) опции автоматом прописываются в файле проекта.
1
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
27.09.2016, 19:49 [ТС] | 11 |
Благодарю за Вашу попытку помочь. Тип проекта AVR Projekt. Прилагаю лог компилятора и настройки которые вас интересовали.
0
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
28.09.2016, 08:31 | 12 |
При таком типе проекта, не нужно специально выставлять, в опциях сборки, эти опции:
Ты видишь, что они по два раза в командной строке повторяются (хотя, у меня и так собирается)? Убери их и в опциях компилятора, и в опциях линкера, и выложи лог компилятора текстом, а не на скрине (сборку Debug и Release сделай). И, если можно, чаще заходи на форум, а не один раз в сутки (у тебя что, интернета нет? Или почта не работает?), эта тягомотина начинает надоедать. Добавлено через 1 час 7 минут Лучше создай новый AVR проект, только процессор выбери atmega8, остальное ничего не меняй, пусть будет по умолчанию, файлы никакие не убирай, опции, в проекте, никакие не выставляй, добавь в main.c код. Убери из общих настроек компилятора (это там где Settings - Compailer) все флаги, убери там же все дополнительные опции (если есть) компилятора и линкера. Сделай сборку Debug и Release, и выложи логи компилятора текстом. WinAVR отсюда скачивал? https://sourceforge.net/projec... /20100110/
1
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
28.09.2016, 21:04 [ТС] | 15 |
лог: -------------- Build: Release in TEst_eeprom_2 (compiler: GNU GCC Compiler for AVR)--------------- avr-gcc.exe -Wall -mmcu=atmega8 -DF_CPU=16000000UL -Os -IC:\WinAVR-20100110\avr\include -c fuse.c -o obj\Release\fuse.o avr-gcc.exe -Wall -mmcu=atmega8 -DF_CPU=16000000UL -Os -IC:\WinAVR-20100110\avr\include -c main.c -o obj\Release\main.o avr-g++.exe -LC:\WinAVR-20100110\avr\lib -o bin\Release\TEst_eeprom_2.elf obj\Release\fuse.o obj\Release\main.o -mmcu=atmega8 -Wl,-Map=bin\Release\TEst_eeprom_2.map,--cref obj\Release\main.o: In function `main': main.c:(.text+0x6): undefined reference to `__eewr_byte_m8' main.c:(.text+0xe): undefined reference to `__eewr_byte_m8' main.c:(.text+0x14): undefined reference to `__eerd_byte_m8' main.c:(.text+0x1e): undefined reference to `__eerd_byte_m8' Process terminated with status 1 (0 minute(s), 0 second(s)) 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) и Debug -------------- Clean: Debug in TEst_eeprom_2 (compiler: GNU GCC Compiler for AVR)--------------- Cleaned "TEst_eeprom_2 - Debug" -------------- Build: Debug in TEst_eeprom_2 (compiler: GNU GCC Compiler for AVR)--------------- avr-gcc.exe -Wall -mmcu=atmega8 -DF_CPU=16000000UL -IC:\WinAVR-20100110\avr\include -c fuse.c -o obj\Debug\fuse.o avr-gcc.exe -Wall -mmcu=atmega8 -DF_CPU=16000000UL -IC:\WinAVR-20100110\avr\include -c main.c -o obj\Debug\main.o avr-g++.exe -LC:\WinAVR-20100110\avr\lib -o bin\Debug\TEst_eeprom_2.elf obj\Debug\fuse.o obj\Debug\main.o -mmcu=atmega8 -Wl,-Map=bin\Debug\TEst_eeprom_2.map,--cref obj\Debug\main.o: In function `main': main.c:(.text+0xe): undefined reference to `__eewr_byte_m8' main.c:(.text+0x16): undefined reference to `__eewr_byte_m8' main.c:(.text+0x1c): undefined reference to `__eerd_byte_m8' main.c:(.text+0x26): undefined reference to `__eerd_byte_m8' Process terminated with status 1 (0 minute(s), 2 second(s)) 4 error(s), 0 warning(s) (0 minute(s), 2 second(s)) P.S. Если внимательно почитать первый мой пост, то там написано:
0
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
28.09.2016, 22:28 | 16 |
Файл своего проекта (.cbp) выложи (в архиве), который:
Попробую у себя собрать. Какая-нибудь другая версия WinAVR стояла до этого? Вечер есть для этого. Добавлено через 5 минут Кстати, у тебя там линкер используется avr-gcc.exe, а здесь avr-g++.exe. Попробуй поменять. Добавлено через 34 минуты Кажется, я нашёл из-за чего эта проблема, но нужно повозиться чтобы найти истинную причину. Добавлено через 7 минут Чуть позже отпишусь, что нужно сделать, чтобы собиралось. Добавлено через 17 минут Суть в следующем. В настройках компилятора для AVR, по умолчанию, стояли в Search directories: для компилятора: C:WinAVR/avr/include, для линкера: C:WinAVR/avr/lib, хотя, на самом деле, у меня WinAVR совсем в другом месте стоит. Тем не менее всё собиралось, и линкер, в частности, находил нужные либы, хотя писал, что ищет там, где их нет: Как находил - неизвестно (может через переменные среды). Если же явно там прописать путь к либам: D:\Program Files (x86)\WinAVR\avr\lib (так у меня), то появляются ошибки линкера (как у тебя). Эти либы его не устраивают. А если указать путь к этим: D:\Program Files (x86)\WinAVR\lib, то собирает без ошибок. Что нужно сделать понял? Только проверь эти пути и в настройках проекта, и в настройках компилятора (где-то можно вообще убрать). Добавлено через 10 минут Т.е., у тебя должно быть, после исправлений, не так: , а так: avr-g++.exe -LC:\WinAVR-20100110\lib
1
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
29.09.2016, 20:53 [ТС] | 17 |
Файл моего последнего проекта приложил.
На работе ребята тоже разводят руками. Видимо придется искать что-то другое, а пока посижу на VSM Studio.
0
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
|
|
29.09.2016, 21:57 | 18 |
Это уже из мира фантастики, я не верю в чудеса в программировании. На 100% процентов уверен - причина именно в этом. Покажи лог вывода компилятора.
Добавлено через 1 минуту В настройках и не будет. Они все записываются в файл проекта: .cbp. Открой текстовым редактором этот файл и увидишь. Добавлено через 1 минуту Я не вижу, что и как ты делаешь. Логи компилятора показывай. Что оставлял? Уточни. Речь не шла об опциях компилятора. Search directories имеешь ввиду, или что? Можно попробовать вообще всё убрать из Search directories, у меня так тоже собирает, только не пишет, где ищет инклуды и либы. Добавлено через 2 минуты Это уже не нужно, с проектами там всё в порядке. Добавлено через 47 секунд Логи компилятора нужны. Добавлено через 11 минут Если хочешь, то могу к тебе подключиться (через TeamViewer), и посмотреть что там и как. Добавлено через 7 минут На вопрос не ответил:
1
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
29.09.2016, 23:49 [ТС] | 19 |
-------------- Clean: Debug in TEst_eeprom_2 (compiler: GNU GCC Compiler for AVR)---------------
Cleaned "TEst_eeprom_2 - Debug" -------------- Build: Debug in TEst_eeprom_2 (compiler: GNU GCC Compiler for AVR)--------------- avr-gcc.exe -mmcu=atmega8 -Wall -DF_CPU=16000000UL -O2 -Wall -c fuse.c -o obj\Debug\fuse.o avr-gcc.exe -mmcu=atmega8 -Wall -DF_CPU=16000000UL -O2 -Wall -c main.c -o obj\Debug\main.o avr-g++.exe -o bin\Debug\TEst_eeprom_2.elf obj\Debug\fuse.o obj\Debug\main.o -mmcu=atmega8 -Wl,-Map=bin\Debug\TEst_eeprom_2.map,--cref Output file is bin\Debug\TEst_eeprom_2.elf with size 2.50 KB Running project post-build steps cmd /c "avr-objdump -h -S bin\Debug\TEst_eeprom_2.elf > bin\Debug\TEst_eeprom_2.lss" avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex bin\Debug\TEst_eeprom_2.elf bin\Debug\TEst_eeprom_2.hex avr-objcopy --no-change-warnings -j .eeprom --change-section-lma .eeprom=0 -O ihex bin\Debug\TEst_eeprom_2.elf bin\Debug\TEst_eeprom_2.eep avr-objcopy --no-change-warnings -j .lock --change-section-lma .lock=0 -O ihex bin\Debug\TEst_eeprom_2.elf bin\Debug\TEst_eeprom_2.lock avr-objcopy --no-change-warnings -j .signature --change-section-lma .signature=0 -O ihex bin\Debug\TEst_eeprom_2.elf bin\Debug\TEst_eeprom_2.sig avr-objcopy --no-change-warnings -j .fuse --change-section-lma .fuse=0 -O ihex bin\Debug\TEst_eeprom_2.elf bin\Debug\TEst_eeprom_2.fuse srec_cat bin\Debug\TEst_eeprom_2.fuse -Intel -crop 0x00 0x01 -offset 0x00 -O bin\Debug\TEst_eeprom_2.lfs -Intel srec_cat bin\Debug\TEst_eeprom_2.fuse -Intel -crop 0x01 0x02 -offset -0x01 -O bin\Debug\TEst_eeprom_2.hfs -Intel Process terminated with status 0 (0 minute(s), 2 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 2 second(s)) Алилуйя!!! Удалил ко всем чертям все пути и поснимал все галочки в настройках проекта (Projekt -> Build Option) и в настройках компилятора. Проект не собрался, но ошибка была уже другая, а именно: -------------- Clean: Debug in TEst_eeprom_2 (compiler: GNU GCC Compiler for AVR)--------------- Cleaned "TEst_eeprom_2 - Debug" -------------- Build: Debug in TEst_eeprom_2 (compiler: GNU GCC Compiler for AVR)--------------- avr-gcc.exe -Wall -DF_CPU=16000000UL -O2 -Wall -c fuse.c -o obj\Debug\fuse.o In file included from fuse.c:1: c:/winavr-20100110/lib/gcc/../../avr/include/avr/io.h:404:6: warning: #warning "device type not defined" fuse.c:3: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__fuse' Process terminated with status 1 (0 minute(s), 0 second(s)) 1 error(s), 1 warning(s) (0 minute(s), 0 second(s)) и Warning (на скрине) не определено устройство. После чего в настройках проекта (Projekt -> Build Option) выбрал целевой контроллер (atmega8) и вуаля. Дальше буду постепенно возвращать настройки и посмотрю произойдет ли сбой и на каком этапе. Спасибо что потратили на меня время и удачи на этом поприще.
0
|
0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 9
|
|
30.09.2016, 00:01 [ТС] | 20 |
Дополню малость... Вернув все как было изначально, как и ожидал, получил прежнюю проблему, которая самоликвидировалась когда очистил список путей для линкера (Settings -> Compiller... -> Search directories, вкладка Linker)
Решено. Тему можно закрывать.
0
|
30.09.2016, 00:01 | |
30.09.2016, 00:01 | |
Помогаю со студенческими работами здесь
20
Как сделать, чтобы можно было писать нормально (на русском) в Code::Blocks? Как подключить к Code::Blocks сторонние библиотеки (например, SFML) и различные компиляторы? Как убрать неполадки совместимости с Code::Blocks при установке этой IDE под Windows 7 ? Debian 9 Visual Studio Code С++ нужно настроить VS Code Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |