question

Upvotes
Accepted
33 0 0 4

Linking errors after updating to 1.2.0

After inplace upgrading from 1.1.1 to 1.2.0 I've got a bunch of linking errors like these:

1> libema.lib(ItemCallbackClient.obj) : error LNK2001: unresolved external symbol rsslDecodeArray

What am I doing wrong? VS2017 if this matters (I don't think so).

elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-apic++
icon clock
10 |1500

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

Upvotes
Accepted
33 0 0 4

I figured out how to fix it: it looks like previously ETA libs were linked in the libema.lib, with 1.2.0 release they are separated out and placed under Elektron-SDK1.2.0.win.rrg\Cpp-C\Eta\Libs.

After specifying them in AdditionalDependencies explicitly (and copying over):

<AdditionalDependencies>libxml2.lib; librsslVA.lib; librssl.lib; libema.lib; ws2_32.lib; wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>

Compilation went successful.

This is something needs to be brought to https://developers.refinitiv.com/en/api-catalog/refinitiv-real-time-opnsrc/rt-sdk-cc/tutorials#ema-c-compiler-settings as it states that only libema.lib is needed (but I asked it in a separate thread).

icon clock
10 |1500

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

Upvotes
9.7k 49 38 60

Hi @maratu,

The ESDK 1.2 release has made some changes to some of the libraries that may affect the linking of existing applications. Refer to the Migration Guide within the ESDK C/C++ documentation.

Also, try to use the new CMake build system to generate the project files for the examples as outlined within the Migration Guide. This will allow you to compare the linking/compiler includes and libs as a comparison to your project build files.

icon clock
10 |1500

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

Click below to post an Idea Post Idea