Hallo, ich versuche pianod zu kompilieren, sowohl auf meinem Laptop, als auch auf einem arm.
Laut
dieser Seite sind die benötigten Abhängigkeiten für ArchLinuxARM (für Archlinux x86 steht da nichts) libao, libgcrypt, gnutls, json-c, faad2 und libmad, welche ich so oder so ähnlich auf meinem Laptop installiert habe.
Zusätzlich hier die installierten Pakete mit Bezug auf json:
$ pacman -Qqs json
json-c
lib32-json-c
perl
Wenn ich die neuste Version von pianod herunterlade und ./configure laufen lasse, kommt folgender Fehler: (ich habe oben etwas abgeschnitten):
.....
checking for gnutls... yes
checking for ao... yes
checking for mad... yes
checking for json... yes
checking for gcry_cipher_open in -lgcrypt... yes
checking for gnutls_record_recv in -lgnutls... yes
checking for json_object_new_string in -ljson... no
configure: error: Cannot find required library: libjson (aka libjson0, json-c)
locate libjson zeigt folgendes:
$ locate libjson
/usr/lib/libjson-c.so
/usr/lib/libjson-c.so.2
/usr/lib/libjson-c.so.2.0.1
/usr/lib/libjson.so
/usr/lib/libjson.so.0
/usr/lib/libjson.so.0.1.0
/usr/lib32/libjson-c.so
/usr/lib32/libjson-c.so.2
/usr/lib32/libjson-c.so.2.0.1
/usr/lib32/libjson.so
/usr/lib32/libjson.so.0
/usr/lib32/libjson.so.0.1.0
config.log zeigt folgendes zum Fehler:
...
configure:4881: checking for json_object_new_string in -ljson
configure:4906: gcc -o conftest -g -O2 -std=c99 -L/usr/lib -L/usr/lib32/ conftest.c -ljson -lgnutls -lgcrypt -lpthread -lm >&5
/usr/bin/ld: /tmp/ccL9sogB.o: undefined reference to symbol 'json_object_new_string'
/usr/bin/ld: note: 'json_object_new_string' is defined in DSO /usr/lib/libjson-c.so.2 so try adding it to the linker command line
/usr/lib/libjson-c.so.2: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
configure:4906: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "pianod"
| #define PACKAGE_TARNAME "pianod"
| #define PACKAGE_VERSION "147"
| #define PACKAGE_STRING "pianod 147"
| #define PACKAGE_BUGREPORT "pianod@lists.deviousfish.com"
| #define PACKAGE_URL "http://deviousfish.com/pianod"
| #define PACKAGE "pianod"
| #define VERSION "147"
| #define HAVE_LIBPTHREAD 1
| #define HAVE_LIBGCRYPT 1
| #define HAVE_LIBGNUTLS 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char json_object_new_string ();
| int
| main ()
| {
| return json_object_new_string ();
| ;
| return 0;
| }
configure:4915: result: no
configure:4925: error: Cannot find required library: libjson (aka libjson0, json-c)
zum Abschluss noch das hier:
$ pkg-config --libs json
-ljson-c
hat jemand eine Idee, wie das zu lösen ist?