Чертов армбиан!
Jan. 22nd, 2022 02:18 pmУже больше часа бьюсь — не могу собрать ничего своего, зависящего от моей libusefull_macros!
Поставил библиотеку в /usr/local/lib, установил соответствующим образом LD_LIBRARY_PATH. И фигвам!
Т.е. линкер находит эту библиотеку (иначе ругался бы), но не может подхватить из нее символы! nm все отлично видит. file говорит, что и с форматом все ОК:
Вот что этой заразе надо?
Как оказалось, другие библиотеки тоже "не видит" (проверил с libudev)!!!
Однако, когда я просто указал gcc -o serialsock *.c -lusefull_macros -lm, оно собралось!! Вот что за чертовщина?
Поставил библиотеку в /usr/local/lib, установил соответствующим образом LD_LIBRARY_PATH. И фигвам!
cc -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,--discard-all -lusefull_macros -ludev mk/1.o -o relay_manage mk/1.o: In function `relay_cmd': 1.c:(.text.relay_cmd+0x98): undefined reference to `globErr' 1.c:(.text.relay_cmd+0x9c): undefined reference to `_WARN' ...
Т.е. линкер находит эту библиотеку (иначе ругался бы), но не может подхватить из нее символы! nm все отлично видит. file говорит, что и с форматом все ОК:
file /usr/local/lib/libusefull_macros.so.0.1.1 /usr/local/lib/libusefull_macros.so.0.1.1: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=115cbab503dc8556b882dcc3343fbffa11169589, not stripped
Вот что этой заразе надо?
Как оказалось, другие библиотеки тоже "не видит" (проверил с libudev)!!!
Однако, когда я просто указал gcc -o serialsock *.c -lusefull_macros -lm, оно собралось!! Вот что за чертовщина?