在编译我的代码时,我遇到了如下问题:
io.cpp:21: undefined reference to `PQconnectdb'
以及在我的代码中发生的所有其他缺少 postgres 函数调用的实例。显然这是一个链接问题,我只是不确定链接问题是什么。
我正在编译以下内容:
mpiCC -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ decisioning_mpi.cpp
g++ -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ io.cpp
g++ -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ calculations.cpp
g++ -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ rules.cpp
g++ -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ Instrument.cpp
g++ -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ Backtest_Parameter_CPO.cpp
g++ -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ Backtest_Trade_CPO.cpp
g++ -c -O2 -g -Wall -Werror -I /usr/include/postgresql/ Data_Bar.cpp
mpiCC -o decisioning_mpi -O2 -g -Wall -Werror -L/usr/lib -lm -lpq decisioning_mpi.o
io.o calculations.o rules.o Instrument.o Backtest_Parameter_CPO.o Backtest_Trade_CPO.o Data_Bar.o
应该注意的是,这是libpq-fe.h的正确目录并且我正在链接 pq,所以我不确定为什么 postgres 函数没有正确链接。我正在运行 Ubuntu 12.04 并从 synaptic 安装 psql (PostgreSQL) 9.1.6。我也会把它短路,我正在使用#include“libpq-fe.h”。
关于如何解决此链接问题的任何想法?