question

Upvotes
Accepted
34 6 12 17

undefined reference to `rsslReserveBufferMemor' after upgrade to Real-Time-SDK-2.0.6.L1.linux

I have linked librssl.a and librsslVA.a. Is there any more lib that I need to link to. The last working version before the upgrade I had the following libraries: librsslData.a, librsslMessages.a, librsslTransport.a, librsslRDM.a, librsslReactor.a, librsslVACache.a, librsslVAUtil.a. Am I missing any libraries after upgrade to Real-Time-SDK-2.0.6.L1.linux??


I get the following error with upgrade after linking to librssl.a, libansi.a and librsslVA.a


undefined reference to `rsslReserveAlignedBufferMemory'

undefined reference to `rsslCopyBufferMemory'

undefined reference to `rsslReserveAlignedBufferMemory'

undefined reference to `rsslCopyBufferMemory'

undefined reference to `rsslReserveAlignedBufferMemory'

undefined reference to `rsslCopyBufferMemory


trepeta-apirefinitiv-realtime-sdkc
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@vishal.anand

Hi,

Thank you for your participation in the forum.

Are any of the replies below satisfactory in resolving your query?

If yes please click the 'Accept' text next to the most appropriate reply. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks,

AHS

@vishal.anand

Hi,

Please be informed that a reply has been verified as correct in answering the question, and marked as such.

Thanks,

AHS

Upvotes
Accepted
79.3k 253 52 74

@vishal.anand

You can try to put librssl.a after librsslVA.a.

/usr/bin/gcc -fPIC -ggdb3 -g -o ./OL7_64_GCC482/Optimized//basicConsumer ./OL7_64_GCC482/Optimized//obj/basicConsumer.o ./OL7_64_GCC482/Optimized//obj/basicDirectoryHandler.o ./OL7_64_GCC482/Optimized//obj/basicDictionaryHandler.o ./OL7_64_GCC482/Optimized//obj/basicMsgHandler.o -m64  -D_SVID_SOURCE=1 -DCOMPILE_64BITS  -DLinux -Dx86_Linux_4X -Dx86_Linux_5X -DLinuxVersion=5 -D_iso_stdcpp_ -D_BSD_SOURCE=1 -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500  -D_POSIX_PTHREAD_SEMANTICS -D_GNU_SOURCE -I/opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Include/Codec/ -I/opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Include/Transport -I/opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Include/RDM -I/opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Include/Reactor -I/opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Include/Util -L/opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Optimized/ -L/opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Optimized/ /opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Optimized//librsslVA.a /opt/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Optimized//librssl.a -lnsl -lpthread -lrt -ldl -lm -lstdc++
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

That worked. Thanks.
Upvotes
32.2k 40 11 20

Hello @vishal.anand,

I do not think the issue is needing other libraries.

.a required should be the same as .so required, with my RTSDK 2.0.6, by doing ldd on the built example executable, I see:

[root@3d7f0e7f49df Shared]# ldd Cons333
        linux-vdso.so.1 =>  (0x00007ffc4b507000)
        libema.so.14 => /opt/refinitiv/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Ema/Libs/OL7_64_GCC482/Optimized/Shared/libema.so.14 (0x00007f1ee307c000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f1ee2e74000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f1ee2c70000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f1ee2a54000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f1ee274c000)
        librsslVA.so.19 => /opt/refinitiv/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Optimized/Shared/librsslVA.so.19 (0x00007f1ee2497000)
        librssl.so.17 => /opt/refinitiv/RTSDK-2.0.6.L1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Optimized/Shared/librssl.so.17 (0x00007f1ee1f08000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f1ee1c06000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f1ee19f0000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f1ee1622000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1ee386e000)
[root@3d7f0e7f49df Shared]#

I see librssl and and librsslVA and no other RTSDK libraries required.

librsslVACache should not be required, but in case you need it, it should be built in RTSDK-BinaryPack, in:

RTSDK-2.0.6.L1.linux.rrg/RTSDK-BinaryPack/Cpp-C/Eta/Libs/XXX/Debug

To verify the environment,

Have you build RTSDK 2.0.6 when you have loaded it? The article Deploy and Run Refinitiv Real-Time SDK in Docker can be helpful in quickly building RTSDK on linux, with or without docker, and once you are able to run the simple examples that come with SDK, in Examples folder, your environment will be verified, and hopefully, the custom app will build as expected, as well.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.