
[英]Cannot use GSL library on macOS - ld: symbol(s) not found for architecture x86_64
[英]macOS: PQconnectdb failing with “ld: symbol(s) not found for architecture x86_64”
我有一个非常基本的 C 程序,只是试图连接到我本地运行的 postgres 服务器。
我认为这与此问题无关,但我知道服务器处于活动状态并使用这些凭据运行,因为我已使用 java 代码连接到它。
以下是完整来源。
#include <libpq-fe.h>
PGconn *dbconn;
int main (void){
dbconn = PQconnectdb("user=andrew passwd=andrew dbname=postgres");
}
运行这个
gcc postgreConnection.c
输出
Undefined symbols for architecture x86_64:
"_PQconnectdb", referenced from:
_main in postgreConnection-842958.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我通过自制软件下载了 libpq。
我知道我正确地点击了“包含”header,因为如果我更改程序以在 PQConnectdb 调用中包含一个错字,例如:
#include <libpq-fe.h>
PGconn *dbconn;
int main (void){
dbconn = PQconnectdbs("user=andrew passwd=andrew dbname=postgres");
}
我得到了 output
postgreConnection.c:7:14: error: implicit declaration of function 'PQconnectdbs' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
dbconn = PQconnectdbs("user=andrew passwd=andrew dbname=postgres");
^
postgreConnection.c:7:14: note: did you mean 'PQconnectdb'?
/usr/local/include/libpq-fe.h:264:16: note: 'PQconnectdb' declared here
extern PGconn *PQconnectdb(const char *conninfo);
^
postgreConnection.c:7:12: warning: incompatible integer to pointer conversion assigning to 'PGconn *' (aka 'struct pg_conn *') from 'int' [-Wint-conversion]
dbconn = PQconnectdbs("user=andrew passwd=andrew dbname=postgres");
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc --version
output 是
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: x86_64-apple-darwin19.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
我看到的大多数与“未找到架构 x86_64 的符号”相关的问题似乎都涉及更多。 我猜我的问题实际上可能要简单得多。 我感谢有关如何解决此问题的任何建议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.