Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как отключить динамическую линковку
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
3.14
Вот мой makefile:
Код
CC=arm-linux-gcc
CXX=arm-linux-g++
LD=arm=linux-ld

LDFLAGS=-L/usr/local/arm-linux/arm-linux/lib

export CC
export CXX
export LD
export LDFLAGS

EXEC = cmdproc
OBJS = cmdproc.o

all: $(EXEC)

$(EXEC): $(OBJS)
    $(CC) $(LDFLAGS) -o $@ $(OBJS)

romfs:
    $(ROMFSINST) /bin/$(EXEC)

clean:
    -rm -f $(EXEC) *.elf *.gdb *.o
При попытке запуска на встраиваемой системе требует либу (которой в ее корневухе нет).
Как "сказать" что нужна статическая линковка?
andrew_b
Код
LDFLAGS=-L/usr/local/arm-linux/arm-linux/lib -static
3.14
Спасибо.
Теперь я в недоумении, вес приложения вырос с 20 до 520к!!!
Это вся библиотека "тупо" подлинковалась, потому как требуемые либы примерно столько весят, как то можно "поправить"?
Harbour
линкуются только те функции, которые есть в программе, если не верится - nm a.out. В уменьшении размера поможет strip -s (sstrip) и upx. Также неплохо покурить доки на ld на предмет gc-sections.
3.14
ок
Т.к. разместить в моей корневухе такие "тяжести" нет особой возможности, положил требуемые либы в /lib директорию.
Но, приложения их почему то не могут найти ... ?
KirillS
Цитата(3.14 @ Oct 16 2007, 08:45) *
ок
Т.к. разместить в моей корневухе такие "тяжести" нет особой возможности, положил требуемые либы в /lib директорию.
Но, приложения их почему то не могут найти ... ?

Попробуйте определить LD_LIBRARY_PATH=/lib:/usr/local/lib
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.