zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pankaj Kumar <pankajku...@juniper.net.INVALID>
Subject Re: How to use -DTHREADED compile option while compiling
Date Tue, 09 Jun 2020 08:58:44 GMT
Hi Szalay,
I have tried the same as you mentioned, linked code against zookeeper_mt  library but still
I am not able to call the API’s present under #ifdef THREADED. When I comment this ifdef
then I am able to call the API’s. Getting the same error as mentioned below.
Also I have to use ssl support which is defined like this in zookeeper.h

ZOOAPI zhandle_t *zookeeper_init_ssl(const char *host, const char *cert, watcher_fn fn,
int recv_timeout, const clientid_t *clientid, void *context, int flags);

While building library with maven, it was mentioned that -Dc-client-openssl has default value
yes. But still I am not able to call zookeeper_init_ssl API.
Looks like the API’s defined under ifdef I am not able to call that.
I am attaching zookeeper.spec which I use to make libzookeeper and libzookeeper-devel libraries.
Please help me in defining those ifdef THREADED and HAVE_OPENSSL_H variables.


>Hello Pankaj,

>ZooKeeper C client provides two different APIs, a sync (multithreaded) and

>an async (single threaded).

>If you want to use the sync API (multi threaded) then make sure to link

>your application code against the zookeeper_mt library.

>When compiling the ZooKeeper C client code, you can set if you want to also

>build the zookeeper_mt library. Depending on your preferred build tool:

>- cmake: use the -DTHREADED cmake option to enable sync API build

>- make: use the "./configure --without-syncapi" to disable the sync API


>normally I just use "mvn clean install -DskipTests -Pfull-build" command to

>build both the java and C code, which will build both the sync and async

>zookeeper libraries.

>This readme file should help, although I am not 100% sure it is totally

>up-to-date :)


>Kind regards,


From: Pankaj Kumar <pankajkumar@juniper.net>
Date: Friday, 5 June 2020 at 5:19 PM
To: "user@zookeeper.apache.org" <user@zookeeper.apache.org>
Subject: How to use -DTHREADED compile option while compiling

I was making libzookeeper and libzookeeper-devel for latest zookeeper release 3.6.1.
In our software we are making some api calls, however some api calls are giving error:-

error: ‘zoo_create’ was not declared in this scope



error: ‘zoo_delete’ was not declared in this scope

         return zoo_delete(zh, path, version);

error: ‘zoo_get’ was not declared in this scope

         return zoo_get(zh, path, watch, buffer, buffer_len, stat);


error: ‘zoo_exists’ was not declared in this scope

Then after looking into latest library code and found that these calls are defined under #define
And for this thing to work I have to compile zookeeper C client with -DTHREADED option.

What I want to ask that How can I enable this compile -DTHREADED option. I have tried this
with “make” command and “./configure” command, but couldn’t proceed further.

Can someone please help me on how to use DTHREADED option?


Juniper Business Use Only
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message