Я хочу скомпилировать программу, используя makefile, который связан с общими библиотеками zlib, которые отличаются от установленных в моей системе. Но я не хочу, чтобы они постоянно добавлялись в пул библиотек моей системы.
Путь пользовательской zlib: /usr/work/libxlsxwriter-master/zlib-1.2.8.
Я пытался использовать что-то вроде:
ZLIBDIR=/usr/work/libxlsxwriter-master/zlib-1.2.8
# The static library.
$(LIBXLSXWRITER_A) : $(OBJS)
export LD_LIBRARY_PATH=$(ZLIBDIR):$(DEPENDENCIES); \
$(Q)$(AR) $(ARFLAGS) $@ $(MINIZIP_DIR)/ioapi.o $(MINIZIP_DIR)/zip.o $^
# The dynamic library.
$(LIBXLSXWRITER_SO) : $(SOBJS)
export LD_LIBRARY_PATH=$(ZLIBDIR):$(DEPENDENCIES); \
$(Q)$(CC) $(SOFLAGS) -o $@ $(MINIZIP_DIR)/ioapi.so $(MINIZIP_DIR)/zip.so $^ -lz
# Targets for the object files.
%.o : %.c $(HDRS)
$(Q)$(CC) -I$(INC_DIR) $(CFLAGS) $(CXXFLAGS) -c $<
%.so : %.c $(HDRS)
$(Q)$(CC) -fPIC -I$(INC_DIR) $(CFLAGS) $(CXXFLAGS) -c $< -o $@
%.to : %.c $(HDRS)
$(Q)$(CC) -g -O0 -DTESTING -I$(INC_DIR) $(CFLAGS) $(CXXFLAGS) -c $< -o $@
Когда я пытаюсь скомпилировать, у меня возникает эта ошибка: /bin/sh: строка 1: @ar: команда не найдена
Где я не прав?
-Wl,-rpath
. Это может быть именно то, что вы ищете. (ОставляетLD_LIBRARY_PATH
свободным для того, для чего он должен — только — использоваться, то есть для отладки.) - person DevSolar   schedule 25.08.2015@ar: command not found
) возникает из-за несколько необычного использования$(Q)
, которое, я полагаю, вы установили в"@"
, чтобы успокоить ваш make-файл. Обратите внимание, чтоmake -s
(--silent
) делает то же самое. - person DevSolar   schedule 25.08.2015