zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Szalay-Bekő Máté <szalay.beko.m...@gmail.com>
Subject Re: How to use -DTHREADED compile option while compiling
Date Wed, 10 Jun 2020 07:22:15 GMT
Hi Pankaj,

Sorry, I am not very experienced in C++... maybe this is why I am still not
sure what is your problem.

Is this a compile time error or a link error? Are you trying to develop
your own new C / C++ application using ZooKeeper client? Or you want to
build some existing application that is using ZooKeeper, which was built
successfully before but doesn't work anymore with newer versions of
ZooKeeper?

If you need API functions defined in the zookeeper.h that are guarded
by THREADED or HAVE_OPENSSL_H, then why not you simply define these before
importing zookeeper.h ?

Kind regards,
Mate


On Tue, Jun 9, 2020 at 10:58 AM Pankaj Kumar <pankajkumar@juniper.net>
wrote:

> 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
>
>
>
> #ifdef HAVE_OPENSSL_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);
>
> #endif
>
>
>
> 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.
>
>
>
> Thanks.
>
> Pankaj
>
>
>
>
>
> >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
>
> >build
>
>
>
> >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 :)
>
> >https://github.com/apache/zookeeper/tree/master/zookeeper-client/zookeeper-client-c
>
>
>
> >Kind regards,
>
> >Mate
>
>
>
> *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
>
>
>
> Hi,
>
> 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
>
>              path_buffer_len);
>
>                             *^*
>
> *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 **THREADED*
>
> And for this thing to work I have to compile zookeeper C client with -*D*
> *THREADED* option.
>
>
>
> What I want to ask that How can I enable this compile -*D**THREADED*
> 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 *D**THREADED* option?
>
>
>
> Thanks,
>
> Pankaj
>
> Juniper Business Use Only
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message