Compilerfehler undefined reference to
Hallo, ich versuch das File ldap2zone.c zu compilieren. http://www.venaas.no/dns/ldap2zone/ Als Fehler meldet der Compiler nach dem Aufruf: gcc -I/usr/incldude -L/usr/lib/ ldap2zone.c ldap2zone1.c:(.text+0xb1b): undefined reference to `ldap_initialize' ldap2zone1.c:(.text+0xb73): undefined reference to `ldap_simple_bind_s' ldap2zone1.c:(.text+0xc03): undefined reference to `ldap_search' ldap2zone1.c:(.text+0xc63): undefined reference to `ldap_first_entry' ldap2zone1.c:(.text+0xc77): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0xcac): undefined reference to `ldap_get_values' ldap2zone1.c:(.text+0xcde): undefined reference to `ldap_result' ldap2zone1.c:(.text+0xcf6): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0xd90): undefined reference to `ldap_value_free' ldap2zone1.c:(.text+0xdb6): undefined reference to `ldap_value_free' ldap2zone1.c:(.text+0xe41): undefined reference to `ldap_search' ldap2zone1.c:(.text+0xea1): undefined reference to `ldap_first_entry' ldap2zone1.c:(.text+0xeb5): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0xeea): undefined reference to `ldap_get_values_len' ldap2zone1.c:(.text+0xf11): undefined reference to `ldap_get_values' ldap2zone1.c:(.text+0xf55): undefined reference to `ldap_first_attribute' ldap2zone1.c:(.text+0xfc7): undefined reference to `ldap_memfree' ldap2zone1.c:(.text+0x101e): undefined reference to `ldap_get_values_len' ldap2zone1.c:(.text+0x10ce): undefined reference to `ldap_value_free_len' ldap2zone1.c:(.text+0x10d9): undefined reference to `ldap_memfree' ldap2zone1.c:(.text+0x10f5): undefined reference to `ldap_next_attribute' ldap2zone1.c:(.text+0x1122): undefined reference to `ber_free' ldap2zone1.c:(.text+0x1133): undefined reference to `ldap_value_free' ldap2zone1.c:(.text+0x113e): undefined reference to `ldap_value_free_len' ldap2zone1.c:(.text+0x1149): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0x1172): undefined reference to `ldap_result' ldap2zone1.c:(.text+0x118a): undefined reference to `ldap_msgfree' /tmp/ccg8RNKk.o: In function `ldap_result_check': ldap2zone1.c:(.text+0x11f1): undefined reference to `ldap_perror' ldap2zone1.c:(.text+0x11fc): undefined reference to `ldap_unbind_s' collect2: ld returned 1 exit status Ich hab das openldap-devel Paket installiert Danke für die Hilfe. Georg --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
On Saturday 09 August 2008 21:35:27 Georg Wallner wrote:
Hallo,
ich versuch das File ldap2zone.c zu compilieren. http://www.venaas.no/dns/ldap2zone/
Als Fehler meldet der Compiler nach dem Aufruf: gcc -I/usr/incldude -L/usr/lib/ ldap2zone.c
ldap2zone1.c:(.text+0xb1b): undefined reference to `ldap_initialize' ldap2zone1.c:(.text+0xb73): undefined reference to `ldap_simple_bind_s' ldap2zone1.c:(.text+0xc03): undefined reference to `ldap_search' ldap2zone1.c:(.text+0xc63): undefined reference to `ldap_first_entry' ldap2zone1.c:(.text+0xc77): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0xcac): undefined reference to `ldap_get_values' ldap2zone1.c:(.text+0xcde): undefined reference to `ldap_result' ldap2zone1.c:(.text+0xcf6): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0xd90): undefined reference to `ldap_value_free' ldap2zone1.c:(.text+0xdb6): undefined reference to `ldap_value_free' ldap2zone1.c:(.text+0xe41): undefined reference to `ldap_search' ldap2zone1.c:(.text+0xea1): undefined reference to `ldap_first_entry' ldap2zone1.c:(.text+0xeb5): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0xeea): undefined reference to `ldap_get_values_len' ldap2zone1.c:(.text+0xf11): undefined reference to `ldap_get_values' ldap2zone1.c:(.text+0xf55): undefined reference to `ldap_first_attribute' ldap2zone1.c:(.text+0xfc7): undefined reference to `ldap_memfree' ldap2zone1.c:(.text+0x101e): undefined reference to `ldap_get_values_len' ldap2zone1.c:(.text+0x10ce): undefined reference to `ldap_value_free_len' ldap2zone1.c:(.text+0x10d9): undefined reference to `ldap_memfree' ldap2zone1.c:(.text+0x10f5): undefined reference to `ldap_next_attribute' ldap2zone1.c:(.text+0x1122): undefined reference to `ber_free' ldap2zone1.c:(.text+0x1133): undefined reference to `ldap_value_free' ldap2zone1.c:(.text+0x113e): undefined reference to `ldap_value_free_len' ldap2zone1.c:(.text+0x1149): undefined reference to `ldap_msgfree' ldap2zone1.c:(.text+0x1172): undefined reference to `ldap_result' ldap2zone1.c:(.text+0x118a): undefined reference to `ldap_msgfree' /tmp/ccg8RNKk.o: In function `ldap_result_check': ldap2zone1.c:(.text+0x11f1): undefined reference to `ldap_perror' ldap2zone1.c:(.text+0x11fc): undefined reference to `ldap_unbind_s' collect2: ld returned 1 exit status
Ich hab das openldap-devel Paket installiert
Danke für die Hilfe.
Georg --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Du musst gcc mit dem Parameter -lldap -llber aufrufen, damit er auch die LDAP- Libs sucht und zu deinem Programm linkt. Viel Spass, Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Am Sonntag, 10. August 2008 09:18:28 schrieb Andreas Roth:
-lldap -llber
Danke, jetzt kompiliert er. Georg --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
On Sat, 9 Aug 2008 21:35:27 +0200, Georg Wallner wrote:
gcc -I/usr/incldude -L/usr/lib/ ldap2zone.c
sowohl -I/usr/inlude als auch -L/usr/lib sind auf einem normalen System völlig überflüssig, denn dort suchen Compiler und Linker automatisch. Probier es mal einfach ohne. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Hello, On Mon, 11 Aug 2008, Philipp Thomas wrote:
On Sat, 9 Aug 2008 21:35:27 +0200, Georg Wallner wrote:
gcc -I/usr/incldude -L/usr/lib/ ldap2zone.c
sowohl -I/usr/inlude als auch -L/usr/lib sind auf einem normalen System völlig überflüssig, denn dort suchen Compiler und Linker automatisch. Probier es mal einfach ohne.
... und wenn Symbole nicht gefunden werden ("undefined reference to ...") dann fehlt etwas beim linken. I.d.R. eine lib. Und wenn die Symbole mit 'ldap_' beginnen, liegt der Schluß nahe, daß es die ldap-Bibliothek ist... Tips zum weitersuchen, falls man mal auf dem Schlauch steht: apropos ldap rpm -qa | grep -i ldap rpm -ql *ldap*-devel ## die * passend zur -qa Ausgabe ersetzen ls /usr/lib/lib*ldap* nm /usr/lib/libldap.so..... | grep EINS_DER_GESUCHTEN_SYMBOLE # lib-Version und Pfade ggfs. anpassen Und es gibt sogar noch nen "Holzhammer" die lib zu einem vermissten Symbol zu finden (sofern die lib schon installiert ist)... (nm+grep auf allen libs in ..., aber das würde den Rahmen dieser Mail sprengen). Achso, jedenfalls muß man dann die Lib zum Program dazulinken, was aber auch in jeder Programmiereinführung stehen sollte. Zusammengefasst, Georg: RTFM! -dnh -- No, it's a small country on the South American Ivory Coast, just to the left of the Caucasus, with penguin wool and yucca meat as primary exports. -- H. Ekker on the question if Austria is in Europe --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
* Philipp Thomas [2008-08-11 01:10]:
On Sat, 9 Aug 2008 21:35:27 +0200, Georg Wallner wrote:
gcc -I/usr/incldude -L/usr/lib/ ldap2zone.c
sowohl -I/usr/inlude als auch -L/usr/lib sind auf einem normalen System völlig überflüssig, denn dort suchen Compiler und Linker automatisch. Probier es mal einfach ohne.
Sowohl in /usr/incldude als auch in /usr/inlude eher nicht. ;-) SCNR, Bernhard -- Bernhard Walle, SUSE LINUX Products GmbH, Architecture Development --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
On Mon, 11 Aug 2008 08:31:01 +0200, Bernhard Walle wrote:
Sowohl in /usr/incldude als auch in /usr/inlude eher nicht. ;-)
Erbsenzähler! :-) Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Am Montag, 11. August 2008 01:10:02 schrieb Philipp Thomas:
On Sat, 9 Aug 2008 21:35:27 +0200, Georg Wallner wrote:
gcc -I/usr/incldude -L/usr/lib/ ldap2zone.c
sowohl -I/usr/inlude als auch -L/usr/lib sind auf einem normalen System völlig überflüssig, denn dort suchen Compiler und Linker automatisch. Probier es mal einfach ohne. Das hab ich so probiert, hat er aber nicht gemacht. Mit den Einstellungen von Andreas Roth " -lldap -llber" hat es dann auch funktioniert.
Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Danke für die Antwort. Georg --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
On Mon, 11 Aug 2008 08:41:11 +0200, Georg Wallner wrote:
Das hab ich so probiert, hat er aber nicht gemacht. Mit den Einstellungen von Andreas Roth " -lldap -llber" hat es dann auch funktioniert.
Entschuldige, aber wenn Du so wenig davon verstehst würde ich die Finger vom Kompilieren lassen! Meine Anmerkung war natürlich in Kombination zu Andreas Hinweis gedacht! Natürlich müssen die nötigen Bibliotheken angegeben werden, damit der Linker sie einbinden kann. Aber ein gcc -o ldap2zone -ldap -lber ldap2zone.c dürfte anstandslos funktionieren. Ansonsten kann ich mich David nur anschliessen und die Lektüre grundlegender Dokumentation dringendst empfehlen. Philipp -- Das ist die Gentoo-Generation - keine Ahnung von C aber das komplette System selber kompilieren. -- Anonymous --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Hallo Phillip, Am Montag, 11. August 2008 11:18:20 schrieb Philipp Thomas:
On Mon, 11 Aug 2008 08:41:11 +0200, Georg Wallner wrote:
Das hab ich so probiert, hat er aber nicht gemacht. Mit den Einstellungen von Andreas Roth " -lldap -llber" hat es dann auch funktioniert.
Entschuldige, aber wenn Du so wenig davon verstehst würde ich die Finger vom Kompilieren lassen! Wenn die Programmierer Ihren Job ordentlich erledigen, und OpenSuSE das tool mitliefern würde bräuchte ich nicht zu kompilieren, und könnte mich aufs installieren und administrieren beschränken.
Meine Anmerkung war natürlich in Kombination zu Andreas Hinweis gedacht! Natürlich müssen die nötigen Bibliotheken angegeben werden, damit der Linker sie einbinden kann. Aber ein
gcc -o ldap2zone -ldap -lber ldap2zone.c
dürfte anstandslos funktionieren. Ansonsten kann ich mich David nur anschliessen und die Lektüre grundlegender Dokumentation dringendst empfehlen.
Philipp
Georg --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Hallo Georg, On Mon, 11 Aug 2008 11:51:47 +0200, Georg Wallner wrote:
Wenn die Programmierer Ihren Job ordentlich erledigen,
Das stimmt allerdings, wenigstens ein kleines Makefile wäre hilfreich.
und OpenSuSE das tool mitliefern würde bräuchte ich nicht zu kompilieren, und könnte mich aufs installieren und administrieren beschränken.
Mach doch mal einen Bug auf https://bugzilla.novell.com auf, Serverity Enhancement und bitte darum, das Tool doch mit auszuliefern. Wenn Du das machst, nimm mich bitte als pth@suse.de ins CC des Bugs, denn ich bin an der Antwort interessiert. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
* Georg Wallner (Georg.Wallner@familiewallner.de) [20080811 11:52]:
Wenn die Programmierer Ihren Job ordentlich erledigen, und OpenSuSE das tool mitliefern würde bräuchte ich nicht zu kompilieren, und könnte mich aufs installieren und administrieren beschränken.
Ich bastel gerade ein Paket für openSUSE zurecht, dann kannst Du dir das kompilieren in Zukunft ersparen :) Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Hallo Philipp, Am Dienstag, 12. August 2008 13:29:51 schrieb Philipp Thomas:
* Georg Wallner (Georg.Wallner@familiewallner.de) [20080811 11:52]:
Wenn die Programmierer Ihren Job ordentlich erledigen, und OpenSuSE das tool mitliefern würde bräuchte ich nicht zu kompilieren, und könnte mich aufs installieren und administrieren beschränken.
Ich bastel gerade ein Paket für openSUSE zurecht, dann kannst Du dir das kompilieren in Zukunft ersparen :) Danke :)
Da hab ich gleich ein Anliegen. Ich habe zwei verschiedene Sourcecodes verwendet, gingen dann auch beide zum kompilieren und erzeugten auch die zone-files. Aber, bei beiden werden die zone-files falsch geschrieben. Nämlich: ./ldap2zone testpartner.ead-intern.de ldap://localhost/dc=testpartner,dc=ead-intern,dc=de 500 $TTL 500 @ 3600 IN SOA server.testpartner.ead-intern.de. root.mail.testpartner.ead-intern.de. ( 20051406 ; Serialnumber 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL 3600 MX 10 mail.testpartner.ead-intern.de. 3600 NS server.testpartner.ead-intern.de. server 86400 A 172.21.99.1 workstation1 86400 A 172.21.99.71 ldap2zone schreibt fälschlicherweiße die dNSTTL: 86400 statt IN
Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
Georg --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
On Tue, 12 Aug 2008 15:03:40 +0200, Georg Wallner wrote:
Danke :)
Und es ist geschafft :) Derzeit noch in home:psmt, demnächst imProjekt server:dns. Tipp vom Kollegen war, es doch mit powerdns (pdns) als DNS-Server zu versuchen, der unterstützt LDAP direkt von hause aus.
ldap2zone schreibt fälschlicherweiße die dNSTTL: 86400 statt IN
Ich schaue es mir bei Gelegenheit mal an. Das kann aber dauern, da es nur ein Freizeitprojekt ist. Philipp --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org
participants (7)
-
Andreas Roth
-
Bernhard Walle
-
David Haller
-
Georg Wallner
-
Philipp Thomas
-
Philipp Thomas
-
Tilman Schmidt