سؤال ترجمة المرجع apied غير المحدد للرمز "pthread_createGLIBC_2.2.5"


اريد ان اجمع apib في صندوق ubuntu 13.04 لكني أواجه مشكلات مع libread 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

في Makefile:

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

4
2018-06-16 12:49


الأصل


يبدو وكأنه خطأ في التدقيق الإملائي ، لأنه "لا يمكن قراءة الرموز" - يمكنك إبلاغ المبرمجين في gnu.org resp. في دول مجلس التعاون الخليجي و glibc؟! - dschinn1001


الأجوبة:


حسنا ، لقد وجدت ذلك - كان هناك خطأ في Makefile

APR_ONLY_LIBS لم يكن لديه ارتباط متشابك:

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