链接 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
海湾合作委员会链接参考:http://www.network-theory.co.uk/docs/gccintro/gccintro_18.html
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误