为 ZooKeeper 编译 C++ 客户端时获取未定义的引用
Get undefined reference when compiling C++ client for ZooKeeper
我尝试用 C++ 编译我的第一个程序,我在其中尝试连接到 ZooKeeper 并做一些其他事情。在我的代码中有这些行:
//test.cpp
#include "zookeeper.h"
... all other header files from zookeeper/include
void main_watcher (zhandle_t *zkh,
int type,
int state,
const char *path,
void* context)
{
if(type == ZOO_SESSION_EVENT){
if(state == ZOO_CONNECTED_STATE){
...
}
...
}
}
int main(){
return 0;
}
但是当我编译这个 test.cpp
文件时(实际上,我向 zookeeper/.../build/usr/lib 提供 link 和所有包含文件的路径),我得到一个列表这些错误消息:
undefined reference to ZOO_SESSION_EVENT
undefined reference to ZOO_CONNECTED_STATE
...
我做错了什么?
你很可能忘记了 link again zookeeper。通常,您必须执行类似
的操作
g++ -lzookeper -o yourprogram yourprogram.c
也许是
-lzookeeper-mt
也许不是。通常,构建系统 的工作就是为您解决这些问题。
我尝试用 C++ 编译我的第一个程序,我在其中尝试连接到 ZooKeeper 并做一些其他事情。在我的代码中有这些行:
//test.cpp
#include "zookeeper.h"
... all other header files from zookeeper/include
void main_watcher (zhandle_t *zkh,
int type,
int state,
const char *path,
void* context)
{
if(type == ZOO_SESSION_EVENT){
if(state == ZOO_CONNECTED_STATE){
...
}
...
}
}
int main(){
return 0;
}
但是当我编译这个 test.cpp
文件时(实际上,我向 zookeeper/.../build/usr/lib 提供 link 和所有包含文件的路径),我得到一个列表这些错误消息:
undefined reference to ZOO_SESSION_EVENT
undefined reference to ZOO_CONNECTED_STATE
...
我做错了什么?
你很可能忘记了 link again zookeeper。通常,您必须执行类似
的操作g++ -lzookeper -o yourprogram yourprogram.c
也许是
-lzookeeper-mt
也许不是。通常,构建系统 的工作就是为您解决这些问题。