C代码Makefile,如何包含路径?

时间:2018-01-28 08:04:57

标签: c shell makefile

我正在尝试编译bottledwater

loopback

Avro-c就在这里

node .

生成文件

~/bottledwater-pg$ make
make -C ext all
make[1]: Entering directory '/home/jholmes/bottledwater-pg/ext'
Package avro-c was not found in the pkg-config search path.
Perhaps you should add the directory containing `avro-c.pc'
to the PKG_CONFIG_PATH environment variable
No package 'avro-c' found

shell如何扩展PG_CONFIG? 我该怎么做才能启用主代码来检测avro-c文件夹? 我在Ubunutu 16.04编译了avro-c。 我的avrolib路径 / /home/jholmes/avro-c-1.8.2

MODULE_big = bottledwater
EXTENSION = bottledwater

AVRO_CFLAGS = $(shell pkg-config --cflags avro-c)
AVRO_LDFLAGS = $(shell pkg-config --libs avro-c)

PG_CPPFLAGS += $(AVRO_CFLAGS) -std=c99
SHLIB_LINK += $(AVRO_LDFLAGS)

OBJS = io_util.o error_policy.o logdecoder.o oid2avro.o schema_cache.o protocol.o protocol_server.o snapshot.o
DATA = bottledwater--0.1.sql

PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)

里面没有avro-c.pc。 Bin内容

home/jholmes/avro-c-1.8.2/build/avrolib

1 个答案:

答案 0 :(得分:1)

由于您已将库安装在非标准位置,因此需要告知pkg-config有关该非标准位置的信息。最简单的方法是设置if (!file.exists()) { d(TAG, "doesn't exist") return } 环境变量。您可以在运行PKG_CONFIG_PATH时执行此操作:

PKG_CONFIG_PATH =" /home/jholmes/avro-c-1.8.2/lib/pkgconfig"使

这假定make/home/jholmes/avro-c-1.8.2/lib/pkgconfig文件所在的位置。

无论如何,总的来说,我建议改为在.pc安装库。这应该导致一切正常工作,无需人工干预。 /usr/local是专门用于此目的的地点。