'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.el7
dlopen dlopen.c dlopen_doit dlopenold.c __dlopen_check __dlopen dlopen@@GLIBC_2.2.5
My linker option -lpthread -lema -lxml2 -lrssl -lrsslVA -ldl -lnsl -lrt -ldl -lm
but
/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
- 6 AHS
- 39 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 60 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛