|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
|
Undefined reference to или почему не определена функция в Eclipce10.06.2017, 17:34. Показов 6623. Ответов 42
Метки нет (Все метки)
Здравствуйте!
Пишу в Еклипсе в общем проблема такая, прикрутил готовый модуль, но его функции не доступны, почему? понять не могу, перетыкал все что мог. как бы до этого проблем с подключением не было Application/User/main.o: In function `main': C:/C++/Progekt882/lan5500_v2/Src/main.cpp:97: undefined reference to `reg_wizchip_cs_cbfunc(void (*)(), void (*)())' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:98: undefined reference to `reg_wizchip_spi_cbfunc(unsigned char (*)(), void (*)(unsigned char))' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:165: undefined reference to `wizchip_init(unsigned char*, unsigned char*)' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:170: undefined reference to `wizchip_setnetinfo(wiz_NetInfo_t*)' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:171: undefined reference to `wizchip_getnetinfo(wiz_NetInfo_t*) но самое интересно хидер файла с функция прописан в заголовке , и сами пути добавлены в патч ту симбол куда копать подскажите кто знает Спасибо
0
|
|
| 10.06.2017, 17:34 | |
|
Ответы с готовыми решениями:
42
Undefined reference to шаблонная функция Почему происходит ошибка undefined reference to hgeCreate Странная ошибка: [Linker error] undefined reference to `__dyn_tls_init_callback' [Linker error] undefined reference to ld returned 1 exit status |
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
|
| 11.06.2017, 05:27 [ТС] | |
|
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||
| 11.06.2017, 05:30 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
|
| 11.06.2017, 05:32 [ТС] | |
|
make all
Building target: lan5500_v2.elf Invoking: MCU G++ Linker arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -specs=nosys.specs -specs=nano.specs -T"../STM32F103C8Tx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -fno-exceptions -fno-rtti -o "lan5500_v2.elf" @"objects.list" -lm Application/User/main.o: In function `main': C:/C++/Progekt882/lan5500_v2/Src/main.cpp:97: undefined reference to `reg_wizchip_cs_cbfunc(void (*)(), void (*)())' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:98: undefined reference to `reg_wizchip_spi_cbfunc(unsigned char (*)(), void (*)(unsigned char))' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:165: undefined reference to `wizchip_init(unsigned char*, unsigned char*)' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:170: undefined reference to `wizchip_setnetinfo(wiz_NetInfo_t*)' C:/C++/Progekt882/lan5500_v2/Src/main.cpp:171: undefined reference to `wizchip_getnetinfo(wiz_NetInfo_t*)' collect2.exe: error: ld returned 1 exit status make: *** [lan5500_v2.elf] Error 1 сейчас это весь вывод, можно почистить проект, тогда он каждый файл опять в объектный пересоберет
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||
| 11.06.2017, 05:34 | ||
|
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 11.06.2017, 05:35 | ||
|
0
|
||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 11.06.2017, 05:35 | |
|
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
||
| 11.06.2017, 05:40 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
|
| 11.06.2017, 05:44 [ТС] | |
|
дне дает слишком много символов и опять же все не могу скопировать т.к. верхушка улетает
Добавлено через 57 секунд ######################################## ######################################## # Automatically-generated file. Do not edit! ######################################## ######################################## -include ../makefile.init RM := rm -rf # All of the sources participating in the build are defined here -include sources.mk -include lcd1602/subdir.mk -include lan/Internet/httpServer/subdir.mk -include lan/Internet/TFTP/subdir.mk -include lan/Internet/SNTP/subdir.mk -include lan/Internet/SNMP/subdir.mk -include lan/Internet/FTPServer/subdir.mk -include lan/Internet/FTPClient/subdir.mk -include lan/Internet/DNS/subdir.mk -include lan/Internet/DHCP/subdir.mk -include lan/Ethernet/W5500/subdir.mk -include lan/Ethernet/subdir.mk -include lan/Application/loopback/subdir.mk -include Drivers/STM32F1xx_HAL_Driver/subdir.mk -include Drivers/CMSIS/subdir.mk -include Application/User/subdir.mk -include Application/SW4STM32/subdir.mk -include subdir.mk -include objects.mk ifneq ($(MAKECMDGOALS),clean) ifneq ($(strip $(CC_DEPS)),) -include $(CC_DEPS) endif ifneq ($(strip $(C++_DEPS)),) -include $(C++_DEPS) endif ifneq ($(strip $(C_UPPER_DEPS)),) -include $(C_UPPER_DEPS) endif ifneq ($(strip $(CXX_DEPS)),) -include $(CXX_DEPS) endif ifneq ($(strip $(S_UPPER_DEPS)),) -include $(S_UPPER_DEPS) endif ifneq ($(strip $(C_DEPS)),) -include $(C_DEPS) endif ifneq ($(strip $(CPP_DEPS)),) -include $(CPP_DEPS) endif endif -include ../makefile.defs # Add inputs and outputs from these tool invocations to the build variables # All Target all: lan5500_v2.elf # Tool invocations lan5500_v2.elf: $(OBJS) $(USER_OBJS) @echo 'Building target: $@' @echo 'Invoking: MCU G++ Linker' arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -mfloat-abi=soft -specs=nosys.specs -specs=nano.specs -T"../STM32F103C8Tx_FLASH.ld" -Wl,-Map=output.map -Wl,--gc-sections -fno-exceptions -fno-rtti -o "lan5500_v2.elf" @"objects.list" $(USER_OBJS) $(LIBS) -lm @echo 'Finished building target: $@' @echo ' ' $(MAKE) --no-print-directory post-build # Other Targets clean: -$(RM) * -@echo ' ' post-build: -@echo 'Generating binary and Printing size information:' arm-none-eabi-objcopy -O binary "lan5500_v2.elf" "lan5500_v2.bin" arm-none-eabi-size "lan5500_v2.elf" -@echo ' ' .PHONY: all clean dependents .SECONDARY: post-build -include ../makefile.targets майке файл Добавлено через 57 секунд то что мне нужно тут (что не хочет работать) -include lan/Ethernet/W5500/subdir.mk -include lan/Ethernet/subdir.mk
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 11.06.2017, 05:58 | |
|
Попробуй как здесь - http://eclipsebook.in/c-cpp-de... e-managed/ - указать Source location все папки...
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
|
| 11.06.2017, 06:11 [ТС] | |
|
не помогло, правда теперь завалил проект, т.к. все пути потерялись
минут 15 все переделывать Добавлено через 8 минут пересобрал все, в общем как было так и осталось
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||||||
| 11.06.2017, 13:42 | |||||||||||
Сообщение было отмечено Efim25 как решение
Решение
Efim25, вот где-то у тебя в main.cpp подключается этот файл:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
||||||
| 11.06.2017, 13:52 [ТС] | ||||||
|
DrOffset только этот файл или все 3 штуки?
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||
| 11.06.2017, 13:55 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
||||||
| 11.06.2017, 14:02 [ТС] | ||||||
DrOffset если вам не сложно объясните почему так?????
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||||||
| 11.06.2017, 14:22 | |||||||
|
В С++ есть такая возможность как перегрузка функций. Чтобы различать перегруженные функции на уровне линкера, типы параметров кодируются в ее имя, т.е. в С++ функция
_Z1fooi (пример для компилятора G++). Процедура преобразования имен называется name mangling или декорация имен. В твоем случае он искал именно декорированное имя, хотя его в программе не было - в итоге ошибка линкера.В языке С нет перегрузки и никакое преобразование не нужно. Поэтому, если мы используем функцию из С в С++, нам нужно явно указать, что к имени функции не нужно применять декорацию. Добавлено через 3 минуты В данном случае, мы просто сказали, что все содержимое этих трех заголовочных файлов использует связывание в стиле С ( extern "C"), значит компилятор не будет декорировать имена (если говорить строго, он будет декорировать имена в стиле языка С) внутри фигурных скобок.
3
|
|||||||
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
|
| 11.06.2017, 16:11 [ТС] | |
|
DrOffset большей спасибо
![]() Добавлено через 1 час 40 минут в МК код залил, все работает
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||
| 11.06.2017, 16:39 | ||
|
0
|
||
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
| 11.06.2017, 16:51 | |
|
nd2, видимо да. Что g++ компилирует cpp-файлы, а gcc - компилирует с-файлы...
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2015
Сообщений: 47
|
|
| 11.06.2017, 16:53 [ТС] | |
|
TRam_ правильно написал, g++ компилирует cpp-файлы, а gcc - компилирует с-файлы
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 11.06.2017, 17:05 | |||
|
gcc - это GNU Compiler Collection, если ты ему подаешь на вход *.c файл, то он внутри вызывает компилятор С, - cc, если это *.cpp файл, то вызываться будет g++ - компилятор с++. Аналогично, если это будет, например, *.m файл, то вызовется соответствующий компилятор objective c. Ну и т.п.https://gcc.gnu.org/onlinedocs... 2b-and-GCC
1
|
|||
| 11.06.2017, 17:05 | |
|
Помогаю со студенческими работами здесь
40
Undefined reference или передача string в конструктор класса Undefined reference to pow() почему в университете gcc такое выдает, а дома нет? Не определена функция, не могу понять почему? Uncaught ReferenceError: checkFunc is not defined. Почему функция не определена? Процедура или функция с указанным именем не определена Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|