ubuntu 上 libpq 标头的“标准”位置?

sly*_*lin 1 c++ postgresql ubuntu

我已经在 ubuntu 上安装了 libpq-dev,使用apt-get install libpq-dev. 我看到它的头文件(例如 libpq-fe.h)位于 /usr/include/postgresql 中。

现在,当我使用 gcc-4.8 编译一个程序"#include <libpq-fe.h>(这是 libpq doco 推荐的)时,它找不到标头。

现在我知道我可以通过(a)将标头移动到编译器期望的位置或(b)告诉编译器在哪里找到它们来解决这个问题。但我写的是开源软件,我想尽量减少用户的负担。我希望如果他们以标准方式安装 libpq,那么编译器就会知道如何找到它的头文件。还是我在做梦?

Cra*_*ger 5

确切地说,有两种“正确”的方法来查找 Pg 标头:

  • 使用pg_config二进制文件告诉您它们在哪里;或者
  • 使用pkg_config

前者是 PostgreSQL 特定的但可移植的。后者需要pkg_config主要出现在类似 Linux 的平台上,但不太特定于 Pg。