'dlclose@@GLIBC_2.2.5' on centos 7.3 with gcc 4.8.5
/usr/bin/ld: /home/pan/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Eta/Libs/RHEL6_64_GCC444/Debug/librssl.a(rsslImpl.c.o)||undefined reference to symbol 'dlclose@@GLIBC_2.2.5'|
Best Answer
-
It states in the README that:
This Release has been tested with the following:
- Red Hat Advanced Server 6.0 Update 2 Release 64-bit with GCC 4.4.4 (RHEL_6_64_GCC444)
- Oracle Linux Server 6.0 Update 4 64-bit with UPA Lib GCC 4.4.4 (RHEL6_64_GCC444)
- Oracle Linux Server 7.0 64-bit with GCC 4.8.2 (OL7_64_GCC482)
- CentOS 7.0 64-bit with GCC 4.8.2 (OL7_64_GCC482)For CentOS 7.x with GCC 4.8.5, the application should link to librssl.a from OL7_64_GCC482. Therefore, the correct location for librssl.a is /home/pan/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Debug/librssl.a.
0
Answers
-
I change link then
||=== Build: Debug in fmarketrueter (compiler: GNU GCC Compiler) ===|
/usr/bin/ld: /home/pan/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Debug/librssl.a(rsslImpl.c.o)||undefined reference to symbol 'dlclose@@GLIBC_2.2.5'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 11 second(s)) ===|0 -
Have you added -ldl in the linker options? It requires -lnsl -lpthread -lrt -ldl -lm.
If this doesn't solve the problem, please share your Makefile.
0 -
You may need to verify the version of glibc installed on the machine.
# yum list glibc
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: anorien.csc.warwick.ac.uk
* extras: centos.mirroring.pulsant.co.uk
* updates: centos.mirrors.nublue.co.uk
Installed Packages
glibc.i686 2.17-222.el7 @base
glibc.x86_64 2.17-222.el7 @baseIf the application is built properly, it will link to /lib64/libdl.so.2.
# ldd CENTOS7_64_GCC482/Debug/Consumer
linux-vdso.so.1 => (0x00007ffd5c146000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbe0a4fe000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbe0a2e2000)
librt.so.1 => /lib64/librt.so.1 (0x00007fbe0a0da000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbe09ed6000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbe09bd4000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbe09807000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbe0a718000)/lib64/libdl.so.2 will have dlopen@@GLIBC_2.2.5.
# strings /lib64/libdl.so.2 | grep dlopen
dlopen
dlopen.c
dlopen_doit
dlopenold.c
__dlopen_check
__dlopen
dlopen@@GLIBC_2.2.50 -
I check version below
glibc.x86_64 2.17-157.el7
Available Packages
glibc.i686 2.17-222.el7
glibc.x86_64 2.17-222.el7dlopen
dlopen.c
dlopen_doit
dlopenold.c
__dlopen_check
__dlopen
dlopen@@GLIBC_2.2.5My linker option -lpthread
-lema
-lxml2
-lrssl
-lrsslVA
-ldl
-lnsl
-lrt
-ldl
-lmbut
/home/pan/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Debug/librsslVA.a(rsslReactor.c.o)||In function `_reactorTakeChannel':|
/local/jenkins/workspace/ESDKCore/OS/OL7-64/esdk/Cpp-C/Eta/Impl/Reactor/rsslReactor.c|176|未定義參考到「rsslCreateNotifierEvent」|0 -
From my test, the order of Elektron library in the link options is matter. The -lrsslVA must be before -lrssl.
-lpthread -lema -lxml2 -lrsslVA -lrssl -ldl -lnsl -lrt -ldl -lm
The full commands are:
/usr/bin/g++ -c -m64 -D_REENTRANT -DLinux -O3 -DCOMPILE_64BITS -I/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Ema/Src/Include -I/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Ema/Src -o CENTOSL7_64_GCC482/Optimized/obj/Consumer.o Consumer.cpp
/usr/bin/g++ -o CENTOSL7_64_GCC482/Optimized/Consumer100 CENTOSL7_64_GCC482/Optimized/obj/Consumer.o -L/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Debug -L/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Ema/Libs/OL7_64_GCC482/Debug -lpthread -lema -lxml2 -lrsslVA -lrssl -ldl -lnsl -lrt -ldl -lm0 -
From my test, the order of Elektron libraries in the link options is matter. -lrsslVA should be before -lrssl.
-lpthread -lema -lxml2 -lrsslVA -lrssl -ldl -lnsl -lrt -ldl -lm
The full commands are:
/usr/bin/g++ -c -m64 -D_REENTRANT -DLinux -O3 -DCOMPILE_64BITS -I/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Ema/Src/Include -I/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Ema/Src -o CENTOSL7_64_GCC482/Optimized/obj/Consumer.o Consumer.cpp
/usr/bin/g++ -o CENTOSL7_64_GCC482/Optimized/Consumer100 CENTOSL7_64_GCC482/Optimized/obj/Consumer.o -L/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Debug -L/api/setup/Elektron-SDK1.2.1.linux.rrg/Cpp-C/Ema/Libs/OL7_64_GCC482/Debug -lpthread -lema -lxml2 -lrsslVA -lrssl -ldl -lnsl -lrt -ldl -lm0 -
Thank you for your answer.
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 684 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 249 ETA
- 554 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 643 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 192 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛