Я изменяю старый make-файл, чтобы создать расширение C для postgreSQL.Makefile в настоящее время выглядит следующим образом:
PGLIB = /usr/lib/postgresql/8.4/lib
PQINC = /usr/include/postgresql/8.4/server
CC=gcc
override CFLAGS+= $(CFLAGS_SL) -DPG_AGGREGATE
SHLIB = pg_myextlib
SRC = foo.c \
foobar.c
OBJS = foo.o \
foobar.o
all: $(OBJS)
$(CC) -shared -o $(SHLIB)$(DLSUFFIX) $(OBJS) -I$(PQINC)
cp *.so $(PGLIB)
clean:
rm -f $(SHLIB) $(OBJS)
Ошибка, которую я получаю при запуске make:
common.h: 58: 22: ошибка: postgres.h: неттакой файл или каталог
Что говорит о том, что путь включения не добавляется (файл существует в $ PQINC).Прошло много времени с тех пор, как я написал Makefile - и с тех пор я не писал много.Кроме того, я почти уверен, что «shared» - это не флаг gcc для сборки разделяемых библиотек в Ubuntu (мой текущий ящик разработчика) - я думаю, что флаг должен быть «fPIC» - кто-то может это подтвердить?
Я запускаю gcc v4.4.3 на Ubuntu 10.0.4 и компилирую для использования с PG 8.4