Libaerospike.so: undefined symbol: RAND_seed


#1

Hello! I’m sorry for my primitive english.
I use gwan with csp in C, when gwan start compile all files, the risult is this:
linking: prova.c: /usr/lib/libaerospike.so: undefined symbol: RAND_seed

I install client C and the library need. I try to compile with gcc but nothing, in gcc more lots error, for example: undefined reference to ‘g_namaspace’(this is just one).
The file prova.c begins:

#pragma link "/usr/lib/libaerospike.so"
#pragma link "aerospike"
#include <aerospike/aerospike.h>
#include <gwan/gwan.h>
.
.
.

Then I try this:

ld /usr/lib/libaerospike.so | grep -i RAND_seed
ld: warning: cannot find entry symbol _start; not setting start adress
/usr/lib/aerospike.so: undefined reference to 'pthread_rwlockattr_init'
 /usr/lib/aerospike.so: undefined reference to 'dlopen'
 /usr/lib/aerospike.so: undefined reference to 'RAND_seed'
 .
 .
 .

The library /usr/lib/libcrypto.so exist

Please help me!

Thank you!!


#2

The external libraries needed by Aerospike requires the following flags for ld line: LDFLAGS = -lssl -lcrypto -lpthread ifneq ($(OS),Darwin) LDFLAGS += -lrt -ldl endif

This is taken from the Makefile used to build all example applications in the C client:


Linking issues on ubuntu 14.04
#3

Thank for answer me! in gwan I cant make the file .c is gwan compile onfly…You have some idea? Thank you!


#4

My C not is too good, RAND_seed is ok right now, because I put #pragma link “ssl” and “crypto”. But now new error :frowning: Linking prova.c: undefined symbol: g_n_key this is problem library or .h file? Thank


#6

g_n_key is something that we use in our example, and is declared in the example_utils.c If you are using the same variable, you will want to declare it.


#7

Yes I know, I tryed to connect gwan with aerospike, aerospike is best db but gwan apparently is fast web server(good match).
I used your example in areospike client c (example/query-example/simple/src/main/example.c) to have a connection. Right, my C not is too good but I have big project with aerospike and I do not want to use php(not too fast). Gwan compile onfly, so nothing gcc etc.
I put everything:

#pragma include "/usr/lib/"
#pragma link "aerospike"
#pragma link "ssl"
#pragma link "crypto"
#pragma include "/usr/lib/x86_64-linux-gnu/"
#pragma link "dl"
#pragma link "rt"
#pragma link "nl"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <stdlib.h>
#include <inttypes.h>
#include <aerospike/aerospike.h>
#include <aerospike/aerospike_query.h>
#include <aerospike/aerospike_batch.h>
#include <aerospike/aerospike_key.h>
#include <aerospike/as_batch.h>
#include <aerospike/as_error.h>
#include <aerospike/as_integer.h>
#include <aerospike/as_key>
#include <aerospike/as_record.h>
#include <aerospike/as_status.h>
#include <aerospike/as_val.h>
#include <example_utils.h>
#include <gwan/gwan.h>
//==========================================================
// Forward Declarations
//
bool batch_read_cb(const as_batch_read* results, uint32_t n, void* udata);
void cleanup(aerospike* p_as);
bool insert_records(aerospike* p_as);
//==========================================================
// BATCH GET Example
//
int
main(int argc, char* argv[])
{
.
.

Same problem
I wanna just connect this fantastic DB with C(gwan or better), or maybe is better lua?(for low latency) Thanks for your patience!!


#8

We will try and get an example up.


#9

Thank you! For your help!!!


#10

Please find my answer here. I’ve tried to make it more descriptive and in-detail. Please let me know, if you find any difficulty in it.


#11

Thank you!!! Nothing difficulty, know I understand for connection!!! Thank you Again!!