I'm migrating from ETA 3.1.0L1 to 3.4.0L1 (Elektron-SDK-1.4.0L1).
The Linux upgrade went fairly smoothly - some includes and libraries have moved around, however it builds and passes it's test suite.
On Windows (VC11) not so much.
We are getting persistent multiply & undefined symbols at link time.
1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_pch already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_param already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_spesc already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_chparm already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_decode already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_end_of_row already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_page_columns already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_page_rows already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_scroll_bot already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_columns already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_end_of_row already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_rows already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_scroll_bot already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: null_char already defined in librsslVACache.lib(d_main.obj) 1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_do_decode already defined in librsslVACache.lib(d_main.obj) 1> Creating library C:\src\Agora\trunk\outwell\VC11\x64\binr\libs\agora_lib_UPA.x64.lib and object C:\src\Agora\trunk\outwell\VC11\x64\binr\libs\agora_lib_UPA.x64.exp 1>librssl.lib(ripcsslutils.obj) : error LNK2019: unresolved external symbol __imp_CertCloseStore referenced in function ripcSSLSetupCTXClient 1>librssl.lib(ripcsslutils.obj) : error LNK2019: unresolved external symbol __imp_CertEnumCertificatesInStore referenced in function ripcSSLSetupCTXClient 1>librssl.lib(ripcsslutils.obj) : error LNK2019: unresolved external symbol __imp_CertFreeCertificateContext referenced in function ripcSSLSetupCTXClient 1>librssl.lib(ripcsslutils.obj) : error LNK2019: unresolved external symbol __imp_CertOpenSystemStoreA referenced in function ripcSSLSetupCTXClient 1>C:\src\Agora\trunk\outwell\VC11\x64\binr\agora_lib_UPA.x64.dll : fatal error LNK1120: 4 unresolved externals
We include the following libraries
librsslVA.lib librsslVACache.lib libdacs.lib libansi.lib librssl.lib
Is there a problem with the Package or am I missing something?
Hi @Gordon Hunn,
This appears to be a packaging issue with 1.4 but will need to confirm with development. I’ve submitted a question to verify and to provide a proper solution going forward.
Thanks.
crypt32.lib has fixed the _Cert* missing references. Thank you.
However I'm still left with the multiple definitions in librsslVACache.lib
1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_pch already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_param already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_spesc already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_chparm already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_decode already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_end_of_row already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_page_columns already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_page_rows already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_scroll_bot already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_columns already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_end_of_row already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_rows already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: qa_set_scroll_bot already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: null_char already defined in librsslVACache.lib(d_main.obj)
1>librsslVACache.lib(d_main.obj) : error LNK2005: _ansi_do_decode already defined in librsslVACache.lib(d_main.obj)
Hi @Gordon Hunn,
Are you using cache features within the library? If not, you don't need to include it.
Hi @Gordon Hunn,
I looked into one of the example projects (WatchlistConsumer) included within the downloads and here is the list of libs it uses:
This might be a red herring - removed librsslVACache.lib and now I see
1>libansi.lib(d_main.obj) : error LNK2019: unresolved external symbol toascii referenced in function _ansi_pch
Any idea which lib supplies toascii() ?
Hello @Gordon.Hunn,
Just a hunch.
In your ESDK13 build, do you observe folder:
esdk13\Elektron-SDK-BinaryPack\Cpp-C\Eta\Utils\Ansi ?
If you do not observe it in ESDK14 build?
Can you try copying it into
esdk14\Elektron-SDK-BinaryPack\Cpp-C\Eta\Utils
hope this helps
The libansi.lib in 1.4 came from
C:\src\Elektron-SDK-1.4.0.L1.win.rrg\Cpp-C\Eta\Libs\WIN_64_VS110 and was 144KB
I replaced it with the libansi from 1.2 (which is what I had to hand) - this was as you suggested in
C:\src\Elektron-SDK1.2.1.win.rrg\Elektron-SDK-BinaryPack\Cpp-C\Eta\Utils\Ansi\Libs\WIN_64_VS110
and is much bigger @ 517KB
This resolves the undefined reference - Good call :)
However, this means that the 1.4 package is incorrect. Please can you liase with Development to get this re-issued.
Hello @Gordon.Hunn
Good to hear. Yes. @nick.zincone.1 is already in the process of raising the question with development, so at some point we may expect an update.
Have you tried to build any of the example applications? I would try here first to ensure your environment is working and to provide you with the actual libs to include.