背景
我正在运行linux ...而且我正在尝试编写一个连接到postgresql数据库的基本小c ++程序。
我试图关注这篇文章 http://www.tutorialspoint.com/postgresql/postgresql_c_cpp.htm
问题
我已经能够编译库...我现在可以看到我的计算机上有以下文件夹 的/ usr /本地/包含/ pqxx
但是当我尝试编写一些基本代码并编译它时,我收到以下错误:
devbox2:/var/abus# g++ testdb.cpp -lpqxx -lpq
testdb.cpp:2:22: fatal error: pqxx/pqxx: No such file or directory
#include <pqxx/pqxx>
^
compilation terminated.
源代码
这是代码的样子:
1 #include <iostream>
2 #include <pqxx/pqxx>
3
4 using namespace std;
5 using namespace pqxx;
6
7 int main(int argc, char* argv[])
8 {
9 try{
10 connection C("dbname=testdestination user=testuser password=testpassword \
11 hostaddr=127.0.0.1 port=5432");
12 if (C.is_open()) {
13 cout << "Opened database successfully: " << C.dbname() << endl;
14 } else {
15 cout << "Can't open database" << endl;
16 return 1;
17 }
18 C.disconnect ();
19 }catch (const std::exception &e){
20 cerr << e.what() << std::endl;
21 return 1;
22 }
23 }
到目前为止我尝试过的事情:
我一直在/ usr / local / include / pqxx文件夹中查看,我可以看到有一个名为pqxx的文件...但它没有任何扩展名。
这里是该文件夹的ls -lah命令的片段:
-rw-r--r-- 1 root root 637 Dec 8 21:42 pipeline
-rw-r--r-- 1 root root 7.5K Dec 8 21:42 pipeline.hxx
-rw-r--r-- 1 root root 1.1K Dec 8 21:42 pqxx
-rw-r--r-- 1 root root 728 Dec 8 21:42 prepared_statement
-rw-r--r-- 1 root root 8.2K Dec 8 21:42 prepared_statement.hxx
我还确保我的PATH包含/ usr / local / include / pqxx文件夹。这就是我的PATH的样子:
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/gcc:/usr/local/include/pqxx:/usr/local/include'
我不确定我还应该检查什么。任何建议,将不胜感激。 谢谢。
答案 0 :(得分:2)
要查找包含文件,您必须添加-I
选项,例如
g++ -I/usr/local/include testdb.cpp -lpqxx -lpq
向PATH
添加目录对此没有帮助,PATH
用于从shell查找可执行文件。