簡體   English   中英

鏈接PostgreSQL時的C ++鏈接錯誤

[英]C++ linking error when linking postgresql

編譯代碼時,我遇到了如下問題:

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”。

關於如何解決此鏈接問題的任何想法?

-L/usr/lib/ -lm -lpq放在鏈接命令的末尾,然后鏈接程序可以找到符號

mpiCC -o decisioning_mpi -O2 -g -Wall -Werror decisioning_mpi.o io.o \
calculations.o rules.o Instrument.o Backtest_Parameter_CPO.o \
Backtest_Trade_CPO.o Data_Bar.o -L/usr/lib -lm -lpq

GCC鏈接參考: http : //www.network-theory.co.uk/docs/gccintro/gccintro_18.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM