एक मेकफाइल में अनलिंक किए गए पुस्तकालय?


1

मैं एक libspopc स्थापित करने की कोशिश कर रहा हूँ, लेकिन जब मैं इसे चलाता हूँ तो मुझे निम्न आउटपुट मिलता है:

cc -Wall -Wextra -pedantic -pipe -fPIC -Os -DUSE_SSL -c session.c
cc -Wall -Wextra -pedantic -pipe -fPIC -Os -DUSE_SSL -c queries.c
cc -Wall -Wextra -pedantic -pipe -fPIC -Os -DUSE_SSL -c parsing.c
cc -Wall -Wextra -pedantic -pipe -fPIC -Os -DUSE_SSL -c format.c
cc -Wall -Wextra -pedantic -pipe -fPIC -Os -DUSE_SSL -c objects.c
cc -Wall -Wextra -pedantic -pipe -fPIC -Os -DUSE_SSL -c libspopc.c
rm -f libspopc*.a
ar r libspopc-0.9n.a session.o queries.o parsing.o format.o objects.o libspopc.o
ar: creating libspopc-0.9n.a
ranlib libspopc-0.9n.a
ln -s libspopc-0.9n.a libspopc.a
rm -f libspopc*.so
cc -o libspopc-0.9n.so -shared session.o queries.o parsing.o format.o objects.o libspopc.o
ln -s libspopc-0.9n.so libspopc.so
cc -o poptest1 -Wall -Wextra -pedantic -pipe -fPIC -Os -DUSE_SSL examples/poptest1.c -L. -lspopc -lssl -lcrypto
/usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
dso_dlfcn.c:(.text+0x2d): undefined reference to `dlopen'
dso_dlfcn.c:(.text+0x43): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x4d): undefined reference to `dlclose'
/usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_pathbyaddr':
dso_dlfcn.c:(.text+0x8f): undefined reference to `dladdr'
dso_dlfcn.c:(.text+0xe9): undefined reference to `dlerror'
/usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
dso_dlfcn.c:(.text+0x491): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x570): undefined reference to `dlerror'
/usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
dso_dlfcn.c:(.text+0x5f1): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x6d0): undefined reference to `dlerror'
/usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_unload':
dso_dlfcn.c:(.text+0x735): undefined reference to `dlclose'
/usr/local/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
dso_dlfcn.c:(.text+0x817): undefined reference to `dlopen'
dso_dlfcn.c:(.text+0x88e): undefined reference to `dlclose'
dso_dlfcn.c:(.text+0x8d5): undefined reference to `dlerror'
collect2: ld returned 1 exit status
make: *** [poptest1] Error 1

एक त्वरित खोज ने सुझाव दिया कि यह libdl के अनलिंक होने के कारण था, हालांकि यह वितरित लाइब्रेरी में संभावना नहीं लगती है, विशेष रूप से एक लोकप्रिय लोकप्रिय प्रतीत होता है। क्या इसके कारण कुछ और हो सकते हैं? और अगर यह एक अनलिंक लाइब्रेरी के कारण है, तो मैं इसे कैसे ठीक करूंगा?

धन्यवाद

जवाबों:


3

आप मेकफाइल libdlमें एग्रेस को लिंक करने के लिए नहीं पूछते हैं । यदि आप मैन्युअल रूप से इसे हल करते हैं (यदि यह स्वचालित रूप से आपके कंपाइलर पर निर्भर हो सकता है तो जोड़ा जाता है) को जोड़ने का प्रयास करना चाहिए।

LDFLAGS+=-ldl

0

नीचे दिए गए चरणों का पालन करके उपरोक्त समस्या को ठीक किया जा सकता है।

  1. कमांड का उपयोग करके इस फाइल को अनटार करें tar -xf openssl-1.0.2-latest.tar.gz
  2. export CFLAGS=-fPIC
  3. ./config shared --prefix=/your/path
  4. make
  5. make install
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.