nats-io / nats.c

A C client for NATS
Apache License 2.0
382 stars 132 forks source link

Compile error on Linux #736

Closed KonstantinWinkel closed 4 months ago

KonstantinWinkel commented 5 months ago

Observed behavior

/usr/bin/ld: CMakeFiles/nats.dir/buf.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/buf.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here

this error comes up for every file that at some point includes "nats.h"

Expected behavior

No error, just compilation

Server and client version

Latest git version ( commit 49c7f32cb9f307f909aa69d35a6f88d2bc884af4 )

Host environment

Pop!_OS 22.04 LTS x86_64

Steps to reproduce

git clone https://github.com/nats-io/nats.c
cd nats.c
mkdir build && cd build
cmake .. -DNATS_BUILD_STREAMING=OFF -DNATS_BUILD_WITH_TLS=OFF
sudo make

PROPOSED FIX: nats.h line 49: #define NATS_EXTERN extern

raphael10-collab commented 4 months ago

I'm experiencing the same issue with Ubuntu 23.10 :

raphy@raohy:~/nats-client$ git clone https://github.com/nats-io/nats.c.git
Cloning into 'nats.c'...
remote: Enumerating objects: 12463, done.
remote: Counting objects: 100% (5873/5873), done.
remote: Compressing objects: 100% (652/652), done.
remote: Total 12463 (delta 5493), reused 5458 (delta 5215), pack-reused 6590
Receiving objects: 100% (12463/12463), 10.94 MiB | 21.66 MiB/s, done.
Resolving deltas: 100% (10367/10367), done.
raphy@raohy:~/nats-client$ cd nats.c/
raphy@raohy:~/nats-client/nats.c$ cmake -B builddir
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Release' as none was specified.
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.10")
-- Found libprotobuf-c: /usr/include
-- Configuring done (0.3s)
-- Generating done (0.1s)
-- Build files have been written to: /home/raphy/nats-client/nats.c/builddir
raphy@raohy:~/nats-client/nats.c$ 
raphy@raohy:~/nats-client/nats.c$ cmake --build builddir/
[  1%] Building C object src/CMakeFiles/nats.dir/asynccb.c.o
[  2%] Building C object src/CMakeFiles/nats.dir/buf.c.o
[  3%] Building C object src/CMakeFiles/nats.dir/comsock.c.o
[  3%] Building C object src/CMakeFiles/nats.dir/conn.c.o
[  4%] Building C object src/CMakeFiles/nats.dir/crypto.c.o
[  5%] Building C object src/CMakeFiles/nats.dir/hash.c.o
[  5%] Building C object src/CMakeFiles/nats.dir/js.c.o
[  6%] Building C object src/CMakeFiles/nats.dir/jsm.c.o
[  7%] Building C object src/CMakeFiles/nats.dir/kv.c.o
[  8%] Building C object src/CMakeFiles/nats.dir/micro.c.o
[  8%] Building C object src/CMakeFiles/nats.dir/micro_client.c.o
[  9%] Building C object src/CMakeFiles/nats.dir/micro_endpoint.c.o
[ 10%] Building C object src/CMakeFiles/nats.dir/micro_error.c.o
[ 11%] Building C object src/CMakeFiles/nats.dir/micro_monitoring.c.o
[ 11%] Building C object src/CMakeFiles/nats.dir/micro_request.c.o
[ 12%] Building C object src/CMakeFiles/nats.dir/msg.c.o
[ 13%] Building C object src/CMakeFiles/nats.dir/nats.c.o
[ 13%] Building C object src/CMakeFiles/nats.dir/natstime.c.o
[ 14%] Building C object src/CMakeFiles/nats.dir/nkeys.c.o
[ 15%] Building C object src/CMakeFiles/nats.dir/nuid.c.o
[ 16%] Building C object src/CMakeFiles/nats.dir/opts.c.o
[ 16%] Building C object src/CMakeFiles/nats.dir/parser.c.o
[ 17%] Building C object src/CMakeFiles/nats.dir/pub.c.o
[ 18%] Building C object src/CMakeFiles/nats.dir/srvpool.c.o
[ 19%] Building C object src/CMakeFiles/nats.dir/stats.c.o
[ 19%] Building C object src/CMakeFiles/nats.dir/status.c.o
[ 20%] Building C object src/CMakeFiles/nats.dir/sub.c.o
[ 21%] Building C object src/CMakeFiles/nats.dir/timer.c.o
[ 21%] Building C object src/CMakeFiles/nats.dir/url.c.o
[ 22%] Building C object src/CMakeFiles/nats.dir/util.c.o
[ 23%] Building C object src/CMakeFiles/nats.dir/unix/cond.c.o
[ 24%] Building C object src/CMakeFiles/nats.dir/unix/mutex.c.o
[ 24%] Building C object src/CMakeFiles/nats.dir/unix/sock.c.o
[ 25%] Building C object src/CMakeFiles/nats.dir/unix/thread.c.o
[ 26%] Building C object src/CMakeFiles/nats.dir/stan/conn.c.o
[ 26%] Building C object src/CMakeFiles/nats.dir/stan/copts.c.o
[ 27%] Building C object src/CMakeFiles/nats.dir/stan/msg.c.o
[ 28%] Building C object src/CMakeFiles/nats.dir/stan/protocol.pb-c.c.o
[ 29%] Building C object src/CMakeFiles/nats.dir/stan/pub.c.o
[ 29%] Building C object src/CMakeFiles/nats.dir/stan/sopts.c.o
[ 30%] Building C object src/CMakeFiles/nats.dir/stan/sub.c.o
[ 31%] Linking C shared library libnats.so
/usr/bin/ld: CMakeFiles/nats.dir/buf.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/buf.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/comsock.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/comsock.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/conn.c.o:(.bss+0x20): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/conn.c.o:(.bss+0x28): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/crypto.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/crypto.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/hash.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/hash.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/js.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/js.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/jsm.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/jsm.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/kv.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/kv.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_client.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_client.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_endpoint.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_endpoint.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_error.c.o:(.data.rel.local+0x60): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_error.c.o:(.data.rel.local+0x68): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_monitoring.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_monitoring.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_request.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/micro_request.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/msg.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/msg.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/nats.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/nats.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/natstime.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/natstime.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/nkeys.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/nkeys.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/nuid.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/nuid.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/opts.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/opts.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/parser.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/parser.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/pub.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/pub.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/srvpool.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/srvpool.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stats.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stats.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/status.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/status.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/sub.c.o:(.bss+0x8): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/sub.c.o:(.bss+0x10): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/timer.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/timer.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/url.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/url.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/util.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/util.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/cond.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/cond.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/mutex.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/mutex.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/sock.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/sock.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/thread.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/unix/thread.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/conn.c.o:(.bss+0x8): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/conn.c.o:(.bss+0x10): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/copts.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/copts.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/msg.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/msg.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/pub.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/pub.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/sopts.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/sopts.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/sub.c.o:(.bss+0x0): multiple definition of `micro_ErrorInvalidArg'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/nats.dir/stan/sub.c.o:(.bss+0x8): multiple definition of `micro_ErrorOutOfMemory'; CMakeFiles/nats.dir/asynccb.c.o:(.bss+0x8): first defined here
collect2: error: ld returned 1 exit status
gmake[2]: *** [src/CMakeFiles/nats.dir/build.make:740: src/libnats.so.3.9.0] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:990: src/CMakeFiles/nats.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
raphy@raohy:~/nats-client/nats.c$