libsmtp in Deb 7 erstellen /usr/bin/ld: cannot find -lglib

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mgolbs
Beiträge: 259
Registriert: 22.03.2009 18:08:17
Wohnort: Tirschenreuth - Löbau

libsmtp in Deb 7 erstellen /usr/bin/ld: cannot find -lglib

Beitrag von mgolbs » 06.03.2014 13:25:52

Hallo,

ich versuche die libsmtp http://developer.berlios.de/project/sho ... e_id=10413 unter Debian 7 zu erstellen (./configure make). Leider habe ich da so meine Probleme.

ich habe im Netz schon gefunden:

Code: Alles auswählen

make CFLAGS='-I/usr/include/glib-2.0' CPPFLAGS='-I/usr/lib/x86_64-linux-gnu/glib-2.0/include'
Leider bricht das unter examples immer noch mit
...
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o quoted.o quoted.c
quoted.c: In function ‘libsmtp_int_send_quoted’:
quoted.c:59:3: warning: incompatible implicit declaration of built-in function ‘bzero’ [enabled by default]
quoted.c:84:9: warning: incompatible implicit declaration of built-in function ‘sprintf’ [enabled by default]
quoted.c:116:7: warning: incompatible implicit declaration of built-in function ‘strcat’ [enabled by default]
/bin/rm -f libsmtp_mime.a
ar rc libsmtp_mime.a base64.o comm.o parts.o quoted.o
ranlib libsmtp_mime.a
make[1]: Leaving directory `/home/mgolbs/Software/libsmtp/mime'
make[1]: Entering directory `/home/mgolbs/Software/libsmtp/examples'
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o smtpmail.o smtpmail.c
smtpmail.c: In function ‘read_line’:
smtpmail.c:46:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c: In function ‘main’:
smtpmail.c:107:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c:130:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c:145:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c:172:11: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
gcc -I/usr/include/glib-2.0 -o smtpmail smtpmail.o -L. -L../smtp -L../mime -lsmtp -lsmtp_mime -lglib
/usr/bin/ld: cannot find -lglib
collect2: error: ld returned 1 exit status
make[1]: *** [smtpmail] Fehler 1
make[1]: Leaving directory `/home/mgolbs/Software/libsmtp/examples'
make: *** [all] Fehler 1
mgolbs@debian7:~/Software/libsmtp$
Hat jemand einen Tipp, wie ich das Problem mit
/usr/bin/ld: cannot find -lglib
lösen könnte? Bin leider kein Fachmann :-)

Gruß Markus
Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège

Benutzeravatar
CH777
Beiträge: 1464
Registriert: 27.05.2008 16:37:17

Re: libsmtp in Deb 7 erstellen /usr/bin/ld: cannot find -lgl

Beitrag von CH777 » 06.03.2014 14:02:10

Ist Debianlibglib2.0-dev denn überhaupt installiert?

Und hast du diesen Post hier schon gelesen? Der hatte das gleiche Problem.

mgolbs
Beiträge: 259
Registriert: 22.03.2009 18:08:17
Wohnort: Tirschenreuth - Löbau

Re: libsmtp in Deb 7 erstellen /usr/bin/ld: cannot find -lgl

Beitrag von mgolbs » 06.03.2014 15:19:24

Hallo,

vielen Dank für die Rückmeldung. libgtk2.0-dev und libglib2.0-dev sind drauf. Das Posting habe ich auch schon gefunden und bin damit etwas weiter gekommen. Mein Problem scheint das durch ./configure erzeugte Makefile im example Ordner zu sein:

Code: Alles auswählen

# Main Makefile for Kevins stupid "libsmtp" library
# Copyright (C) 2001 Kevin Read.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
SHELL = /bin/sh
top_srcdir = ..
srcdir = .
.SUFFIXES:
.SUFFIXES: .c .o
OPT=-g -O
AR = ar
AR_FLAGS = rc
RANLIB = ranlib
CC = gcc
CFLAGS = -I. -I../include `glib-config --cflags` -g -O2
LDFLAGS = -L. -L../smtp -L../mime 
INSTALL = /usr/bin/install -c
prefix = /usr/local
exec_prefix = ${prefix}
bindir = $(exec_prefix)/bin
libdir = $(prefix)/lib
infodir = $(prefix)/info
ifeq (yes,yes)
  SOURCES=smtpmail.c multipart.c singlepart.c
  OBJS=smtpmail.o multipart.o singlepart.o
  APPS=smtpmail multipart singlepart
  LIBS = -lsmtp -lsmtp_mime -lglib 
else
  SOURCES=smtpmail.c
  OBJS=smtpmail.o
  APPS=smtpmail
  LIBS = -lsmtp -lglib 
endif
DOCS=
MISC=configure mkinstalldirs install-sh aclocal.m4
LIB_OBJS=
all: $(APPS)
ifeq (yes,yes)
singlepart: singlepart.o
	$(CC) $(CFLAGS) -o singlepart singlepart.o $(LIBS) $(LDFLAGS)
multipart: multipart.o
	$(CC) $(CFLAGS) -o multipart multipart.o $(LIBS) $(LDFLAGS)
endif
smtpmail: smtpmail.o
	$(CC) $(CFLAGS) -o smtpmail smtpmail.o $(LDFLAGS) $(LIBS)
clean:
	/bin/rm -f core *.o $(OBJS) $(LIB_OBJS) multipart singlepart \
	smtpmail
distclean: clean
	/bin/rm -f Makefile config.h config.status config.cache config.log
mostlyclean: clean
maintainer-clean: clean
Ich denke die

Code: Alles auswählen

CFLAGS = -I. -I../include `glib-config --cflags` -g -O2
mit den
LIBS = -lsmtp -lsmtp_mime -lglib 
machen die Probleme.
mgolbs@debian7:~/Software/libsmtp$ ./configure
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for main in -lglib... no
checking for main in -lglib... (cached) no
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for unistd.h... (cached) yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for an ANSI C-conforming const... yes
checking for gethostname... yes
checking for socket... yes
checking for strstr... yes
configure: creating ./config.status
config.status: creating mime/Makefile
config.status: creating smtp/Makefile
config.status: creating examples/Makefile
config.status: creating Makefile
config.status: creating config.h
config.status: executing default commands
mgolbs@debian7:~/Software/libsmtp$ make CFLAGS='-I/usr/include/glib-2.0' CPPFLAGS='-I/usr/lib/x86_64-linux-gnu/glib-2.0/include'
make[1]: Entering directory `/home/mgolbs/Software/libsmtp/smtp'
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o libsmtp_comm.o libsmtp_comm.c
libsmtp_comm.c: In function ‘libsmtp_int_read’:
libsmtp_comm.c:52:3: warning: incompatible implicit declaration of built-in function ‘bzero’ [enabled by default]
libsmtp_comm.c:87:31: warning: assignment makes pointer from integer without a cast [enabled by default]
libsmtp_comm.c:93:31: warning: assignment makes pointer from integer without a cast [enabled by default]
libsmtp_comm.c: In function ‘libsmtp_int_send_body’:
libsmtp_comm.c:150:73: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
libsmtp_comm.c: In function ‘libsmtp_dialogue’:
libsmtp_comm.c:263:16: warning: incompatible implicit declaration of built-in function ‘strdup’ [enabled by default]
libsmtp_comm.c:304:16: warning: incompatible implicit declaration of built-in function ‘strdup’ [enabled by default]
libsmtp_comm.c:346:18: warning: incompatible implicit declaration of built-in function ‘strdup’ [enabled by default]
libsmtp_comm.c: In function ‘libsmtp_headers’:
libsmtp_comm.c:474:3: warning: incompatible implicit declaration of built-in function ‘sprintf’ [enabled by default]
libsmtp_comm.c:475:8: warning: incompatible implicit declaration of built-in function ‘labs’ [enabled by default]
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o libsmtp_connection.o libsmtp_connection.c
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o libsmtp_data.o libsmtp_data.c
libsmtp_data.c: In function ‘libsmtp_session_initialize’:
libsmtp_data.c:43:54: warning: incompatible implicit declaration of built-in function ‘calloc’ [enabled by default]
libsmtp_data.c: In function ‘libsmtp_free’:
libsmtp_data.c:85:5: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
libsmtp_data.c: In function ‘libsmtp_set_environment’:
libsmtp_data.c:118:9: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
libsmtp_data.c: In function ‘libsmtp_add_recipient’:
libsmtp_data.c:143:8: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
libsmtp_data.c:152:26: warning: incompatible implicit declaration of built-in function ‘strdup’ [enabled by default]
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o libsmtp_error.o libsmtp_error.c
libsmtp_error.c: In function ‘libsmtp_strerr’:
libsmtp_error.c:72:7: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
libsmtp_error.c:88:5: warning: incompatible implicit declaration of built-in function ‘printf’ [enabled by default]
/bin/rm -f libsmtp.a
ar rc libsmtp.a libsmtp_comm.o libsmtp_connection.o libsmtp_data.o libsmtp_error.o
ranlib libsmtp.a
make[1]: Leaving directory `/home/mgolbs/Software/libsmtp/smtp'
make[1]: Entering directory `/home/mgolbs/Software/libsmtp/mime'
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o base64.o base64.c
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o comm.o comm.c
comm.c: In function ‘libsmtp_mime_headers’:
comm.c:161:31: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o parts.o parts.c
parts.c: In function ‘libsmtp_part_new’:
parts.c:136:52: warning: incompatible implicit declaration of built-in function ‘calloc’ [enabled by default]
parts.c: In function ‘libsmtp_int_nextpart’:
parts.c:384:15: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
parts.c:402:37: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o quoted.o quoted.c
quoted.c: In function ‘libsmtp_int_send_quoted’:
quoted.c:59:3: warning: incompatible implicit declaration of built-in function ‘bzero’ [enabled by default]
quoted.c:84:9: warning: incompatible implicit declaration of built-in function ‘sprintf’ [enabled by default]
quoted.c:116:7: warning: incompatible implicit declaration of built-in function ‘strcat’ [enabled by default]
/bin/rm -f libsmtp_mime.a
ar rc libsmtp_mime.a base64.o comm.o parts.o quoted.o
ranlib libsmtp_mime.a
make[1]: Leaving directory `/home/mgolbs/Software/libsmtp/mime'
make[1]: Entering directory `/home/mgolbs/Software/libsmtp/examples'
gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o smtpmail.o smtpmail.c
smtpmail.c: In function ‘read_line’:
smtpmail.c:46:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c: In function ‘main’:
smtpmail.c:107:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c:130:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c:145:10: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
smtpmail.c:172:11: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
gcc -I/usr/include/glib-2.0 -o smtpmail smtpmail.o -L. -L../smtp -L../mime -lsmtp -lsmtp_mime -lglib
/usr/bin/ld: cannot find -lglib
collect2: error: ld returned 1 exit status
make[1]: *** [smtpmail] Fehler 1
make[1]: Leaving directory `/home/mgolbs/Software/libsmtp/examples'
make: *** [all] Fehler 1
Über Tipps und Infos wäre ich sehr dankbar.

Gruß Markus
Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: libsmtp in Deb 7 erstellen /usr/bin/ld: cannot find -lgl

Beitrag von habakug » 06.03.2014 15:45:40

Hallo!

Auf einem Wheezy sieht es so aus:

Code: Alles auswählen

$ echo $(pkg-config --cflags --libs glib-2.0)
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lglib-2.0
Du kannst also in allen Makefiles/Makefile.ins "glib-config --cflags" durch "pkg-config --cflags glib-2.0" ersetzen. Zweitens alle "-lglib" zu "-lglib-2.0" machen, dann kompiliert das (mit Warnungen) durch.

Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

mgolbs
Beiträge: 259
Registriert: 22.03.2009 18:08:17
Wohnort: Tirschenreuth - Löbau

Re: libsmtp in Deb 7 erstellen /usr/bin/ld: cannot find -lgl

Beitrag von mgolbs » 06.03.2014 17:57:28

Hallo,

vielen, vielen Dank!!! Werde die Ersetzungen in allen Makefile.in machen und erneut probieren. Vielen Dank! Das sollte dann doch ebenfalls so auf einem Debian 7.4 armel (arm-linux-gnueabihf) funktionieren? Derzeit teste ich unter Debian 7.4 amd_64.

Gruß und Dank Markus
Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège

mgolbs
Beiträge: 259
Registriert: 22.03.2009 18:08:17
Wohnort: Tirschenreuth - Löbau

Re: libsmtp in Deb 7 erstellen /usr/bin/ld: cannot find -lgl

Beitrag von mgolbs » 07.03.2014 13:28:19

mgolbs hat geschrieben:Hallo,

vielen, vielen Dank!!! Werde die Ersetzungen in allen Makefile.in machen und erneut probieren. Vielen Dank! Das sollte dann doch ebenfalls so auf einem Debian 7.4 armel (arm-linux-gnueabihf) funktionieren? Derzeit teste ich unter Debian 7.4 amd_64.

Gruß und Dank Markus
Der Tipp hat erst einmal prima funktioniert. In der Version 0.8 klappt der Code bei mir auf einem i386 32bit Intel Atom. Wenn ich diesen 1:1 auf einem amd_64 übersetze kommt:
Speicherzugriffsfehler
Ich kann dann zwar in Funktionen Parameter einstellen dass dieses nicht mehr passiert, dann kommt aber:
Mailserver didn't greet correctly conforming to RFC, we might not be welcome
[/quote]

auf einem beaglebone 32bit Arm:
An error occured while connecting:
Mailserver didn't greet correctly conforming to RFC, we might not be welcome
Last Response:4.0.0 Error: timeout
Komisch ist für mich, dass der gleiche Quellcode auf den unterschiedlichen Plattformen so extrem unterschiedlich reagiert?

Da wird man wohl viel Mühe reinstecken müssen, um das auf einen aktuellen Stand bringen zu können. Habe wieder eine Menge dazugelernt.

Gruß und Dank Markus
Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège

Antworten