Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Microblaze, FreeRTOS, C & C++
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Vadim_nsk
В Xilinx Software Development Kit 13.4 создаю проект FreeRTOS_Hello_World для Microblaze. Проверяю, все работает. Добавляю файл *.cpp с функцией и она становится невидна. Переименовываю файл в *.c. И функция становится видимой. Вынес новые файлы в отдельный каталог, чтобы отдельно изменить параметры компиляции, но что бы я не менял, все равно не работает. Компилятор GCC, язык опередляет по расширению файла, а вот линковщик не хочет собирать все воедино.
Пример проекта
den_po
Цитата(Vadim_nsk @ Mar 23 2015, 12:53) *
а вот линковщик не хочет собирать все воедино.

А ему есть, что собирать? Для cpp объектник генерируется?
Vadim_nsk
Цитата(den_po @ Mar 23 2015, 15:14) *
А ему есть, что собирать? Для cpp объектник генерируется?

Верно, объектника нет, но почему нет, не понимаю. Вот вывод в консоль:
Код
**** Build of configuration Debug for project freertos_hello_world_0 ****

make all
Building file: ../src/FreeRTOS-main.c
Invoking: MicroBlaze gcc compiler
mb-gcc -Wall -O0 -g3 -c -fmessage-length=0 -I../../freertos_hello_world_bsp_0/microblaze_0/include -mxl-barrel-shift -mxl-pattern-compare -mcpu=v8.20.b -mno-xl-soft-mul -MMD -MP -MF"src/FreeRTOS-main.d" -MT"src/FreeRTOS-main.d" -o"src/FreeRTOS-main.o" "../src/FreeRTOS-main.c"
Finished building: ../src/FreeRTOS-main.c
' '
Building file: ../src/task_c.c
Invoking: MicroBlaze gcc compiler
mb-gcc -Wall -O0 -g3 -c -fmessage-length=0 -I../../freertos_hello_world_bsp_0/microblaze_0/include -mxl-barrel-shift -mxl-pattern-compare -mcpu=v8.20.b -mno-xl-soft-mul -MMD -MP -MF"src/task_c.d" -MT"src/task_c.d" -o"src/task_c.o" "../src/task_c.c"
Finished building: ../src/task_c.c
' '
Building target: freertos_hello_world_0.elf
Invoking: MicroBlaze gcc linker
mb-gcc -Wl,-T -Wl,../src/lscript.ld -L../../freertos_hello_world_bsp_0/microblaze_0/lib -mxl-barrel-shift -mxl-pattern-compare -mcpu=v8.20.b -mno-xl-soft-mul -o"freertos_hello_world_0.elf"  ./src/FreeRTOS-main.o ./src/task_c.o   -Wl,--start-group,-lxil,-lfreertos,-lgcc,-lc,--end-group
./src/FreeRTOS-main.o: In function `main':
D:\My_Documents\projects\Atlys_Demo\SDK\SDK_Workspace\freertos_hello_world_0\Debug/../src/FreeRTOS-main.c:196: undefined reference to `task_cpp'
collect2: ld returned 1 exit status
make: *** [freertos_hello_world_0.elf] Ошибка 1
Т.е. он даже не пытается его компилировать.

Нашел для файла cpp настройку Select tool, в которой можно выбрать: Microblaze g++ compiler, а по умолчанию там -- NO TOOL --. Почему так не знаю, но похоже, придется указывать чем собирать каждый новый cpp файл.
Проблема решена, спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.