सवाल प्रतीक 'pthread_create @@ GLIBC_2.2.5' प्रतीक के लिए apib अपरिभाषित संदर्भ संकलित करना


मैं संकलन करना चाहता हूँ apib मेरे यूबंटू 13.04 बॉक्स पर लेकिन मुझे pthread lib के साथ समस्याएं आ रही हैं। यह वह त्रुटि है जो मुझे मिलती है:

$ colormake -j 5
cd src && make all
make[1]: Entering directory `/home/monkey/bin/apib-1_0/src'
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_cpu.o apib_cpu.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_iothread.o apib_iothread.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_lines.o apib_lines.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_main.o apib_main.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_oauth.o apib_oauth.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_reporting.o apib_reporting.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_priorityq.o apib_priorityq.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_url.o apib_url.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -g -O2 -I. -I/usr/include/apr-1.0 -DHAVE_CONFIG_H -D_GNU_SOURCE   -c -o apib_mon.o apib_mon.c
gcc -std=gnu99 -pedantic -Wall -Wno-deprecated-declarations -o ../apibmon  apib_mon.o apib_lines.o apib_cpu.o -lapr-1
/usr/bin/ld: apib_mon.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
/usr/bin/ld: note: 'pthread_create@@GLIBC_2.2.5' is defined in DSO /lib/x86_64-linux-gnu/libpthread.so.0 so try adding it to the linker command line
/lib/x86_64-linux-gnu/libpthread.so.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[1]: *** [../apibmon] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/monkey/bin/apib-1_0/src'
make: *** [all] Error 2

जबकि सभी आवश्यक पुस्तकालय स्थापित हैं:

$ dpkg -l  | grep apr && dpkg -l | grep libssl
ii  libapr1                                   1.4.6-3ubuntu1                             amd64        Apache Portable Runtime Library
ii  libapr1-dev                               1.4.6-3ubuntu1                             amd64        Apache Portable Runtime Library - Development Headers
ii  libaprutil1                               1.4.1-3                                    amd64        Apache Portable Runtime Utility Library
ii  libaprutil1-dbd-sqlite3                   1.4.1-3                                    amd64        Apache Portable Runtime Utility Library - SQLite3 Driver
ii  libaprutil1-dev                           1.4.1-3                                    amd64        Apache Portable Runtime Utility Library - Development Headers
ii  libaprutil1-ldap                          1.4.1-3                                    amd64        Apache Portable Runtime Utility Library - LDAP Driver
ii  libssl-dev                                1.0.1c-4ubuntu8.1                          amd64        SSL development libraries, header files and documentation
ii  libssl-doc                                1.0.1c-4ubuntu8.1                          all          SSL development documentation documentation
ii  libssl1.0.0:amd64                         1.0.1c-4ubuntu8.1                          amd64        SSL shared libraries
ii  libssl1.0.0:i386                          1.0.1c-4ubuntu8.1                          i386         SSL shared libraries

मेकफ़ाइल में:

APR_LIBS = -L/lib/x86_64-linux-gnu/ -lm -lcrypto -lpthread -lssl -lapr-1 -laprutil-1

4
2018-06-16 12:49


मूल


यह एक वर्तनी-जांच त्रुटि की तरह दिखता है, क्योंकि "प्रतीकों को नहीं पढ़ सका" - आप gnu.org resps पर कोडर को सूचित कर सकते हैं। जीसीसी और glibc पर? - dschinn1001


जवाब:


ठीक है, मैंने पाया है - मेकफ़ाइल में एक त्रुटि हुई थी

APR_ONLY_LIBS libthread लिंक नहीं किया था:

APR_ONLY_LIBS = -lapr-1

तो मैंने इसे बदल दिया:

APR_ONLY_LIBS = -lapr-1 -lpthread

5
2018-06-16 13:13





यदि आप यहाँ एक चींटी निर्माण समस्या का कारण बन गए हैं, तो बस pthread शामिल करें।

<property name="client.lib.path" value="/usr/local/lib"/> #this filepath
<property name="client.lib.list" value="fltk,pthread,stdc++"/> #this line
<libset dir="${client.lib.path}" libs="${client.lib.list}"/> #variable here with file path mentioned above

-1
2017-10-20 19:02



उबंटू से पूछने के लिए आपका स्वागत है! मेरा सुझाव है संपादित करेंइस जवाब को इसे कैसे करें इसके बारे में विशिष्ट विवरण के साथ विस्तारित करने के लिए। (यह भी देखें मैं एक अच्छा जवाब कैसे लिखूं? AskUbuntu पर किस प्रकार के उत्तरों को सबसे मूल्यवान माना जाता है, इस बारे में सामान्य सलाह के लिए।) - David Foerster