Hi,
I have had trouble compiling pubnub with cmake the last days and think I narrowed it down to a problem in:
- c-core/cpp/pubnub_version_posix.cpp
The compiler kept spitting out the following:
Undefined symbols for architecture arm64:
"_pubnub_sdk_name", referenced from:
_pbcc_uname in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
_pbcc_publish_prep in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
_pbcc_signal_prep in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
_pbcc_subscribe_prep in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
"_pubnub_uagent", referenced from:
_pbnc_fsm in libpubnub.a[8](pubnub_netcore.c.o)
"_pubnub_uname", referenced from:
_pbcc_uname in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
_pbcc_publish_prep in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
_pbcc_signal_prep in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
_pbcc_subscribe_prep in libpubnub.a[6](pubnub_ccore_pubsub.c.o)
ld: symbol(s) not found for architecture arm64
Running nm c-core/libpubnub-cpp.a | grep -E "uname|uagent|sdk_name" (after building) listed the following:
0000000000000018 T __Z12pubnub_unamev
0000000000000024 T __Z13pubnub_uagentv
0000000000000000 T __Z15pubnub_sdk_namev
I simply added (to pubnub_version_posix.cpp):
#if PUBNUB_USE_EXTERN_C
extern "C" {
#endif
#include "core/pubnub_version.h"
#include "core/pubnub_version_internal.h"
#if PUBNUB_USE_EXTERN_C
}
#endif
and now it seems to compile just fine.
nm c-core/libpubnub-cpp.a | grep -E "uname|uagent|sdk_name" now lists the proper symbol that is looked for:
0000000000000000 T _pubnub_sdk_name
0000000000000024 T _pubnub_uagent
0000000000000018 T _pubnub_uname
Hi,
I have had trouble compiling pubnub with cmake the last days and think I narrowed it down to a problem in:
The compiler kept spitting out the following:
Running
nm c-core/libpubnub-cpp.a | grep -E "uname|uagent|sdk_name"(after building) listed the following:I simply added (to pubnub_version_posix.cpp):
and now it seems to compile just fine.
nm c-core/libpubnub-cpp.a | grep -E "uname|uagent|sdk_name"now lists the proper symbol that is looked for: