Discussion:
como puedo compilar ?
(demasiado antiguo para responder)
rhrodri
2003-08-22 05:09:01 UTC
Permalink
tengo esto :

#include <stdio.h>
#include <curses.h>
#include <sys/types.h>
#include <sys/socket.h>
#include "netdb.h"

struct hostent *gethostbyaddr();
void bad_addr();

main(argc, argv)
int argc;
char *argv[];
{
char addr[4]=" ";
int i=0,j=0,a0=0,a1=0,a2=0,a3=0,c=0,classB=0,classC=0,single=0,hex=0;
char *fmt = "%d.%d.%d";
char **ptr;
int p;
struct hostent *host;
extern char *optarg;

classB = classC = single = hex = 0;
while((c = getopt(argc,argv,"bcsx")) != EOF) {....etc etc etc

quiero compilar y correr con devC++ v. 4.9.8.0 para windows ....
sale que "undefine reference to getopt y undefine reference to
gethostbyaddr"
como las puedo incluir o en que *.h estan o si toca compilar el
archivo en c como libreria *.o o que hay que hacer para que funcione
ese tipo de funciones ???
Fernando Arbeiza
2003-08-22 07:33:44 UTC
Permalink
Post by rhrodri
#include <stdio.h>
#include <curses.h>
#include <sys/types.h>
#include <sys/socket.h>
netdb.h debería ser una cabecera del sistema, así que:

#include <netdb.h>

Para utilizar getopt tienes que incluir unistd.h:

#include <unistd.h>

El prototipo para gethostbyaddr debería estar en netdb.h, así que no
deberías definirlo tú.

/* struct hostent *gethostbyaddr(); */

Las declaraciones de funciones están marcadas como obsoletas, así que
es mejor utilizar un prototipo para bad_addr;

/* void bad_addr(); */

Y las definiciones de funciones estilo K&R también están obsoletas desde
el C90, así que deberías usar:

int main(int argc, char *argv[]) {
Post by rhrodri
quiero compilar y correr con devC++ v. 4.9.8.0 para windows ....
Las cabeceras y funciones de las que he estado hablando son POSIX, así
que no sé hasta que punto puedes utilizarlas en windows.
Post by rhrodri
sale que "undefine reference to getopt y undefine reference to
gethostbyaddr"
Esto no es un error del compilador, sino del enlazador; luego
necesitarás enlazar con alguna librería para utilizar las funciones
getopt y gethostbyaddr.

De todas formas, las funciones que quieres utilizar no pertenecen al C,
así que deberías preguntar en un grupo adecuado a tu sistema operativo:

es.comp.os.ms-windows.programacion

Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
Martin J. Sanchez
2003-08-22 09:48:11 UTC
Permalink
On Fri, 22 Aug 2003 09:33:44 +0200, Fernando Arbeiza
Post by Fernando Arbeiza
Las cabeceras y funciones de las que he estado hablando son POSIX, así
que no sé hasta que punto puedes utilizarlas en windows.
...
De todas formas, las funciones que quieres utilizar no pertenecen al C,
es.comp.os.ms-windows.programacion
Si las funciones son POSIX, por que deberia preguntar en un grupo de
windows?
Ademas, estas funciones aunque no sean de la libreria C estandar, se
usan frecuentemente en C. Y no creo que haya un grupo mas adecuado que
este.

Por cierto, este grupo no tiene como objeto hablar exclusivamente del
estandar ISO de C. Quizas sea conveniente que eches un vistazo al RFD
de es.comp.lenguajes.c (lo encontraras en rediris), es muy abierto.

Un saludo.
Martin.
Fernando Arbeiza
2003-08-22 10:51:18 UTC
Permalink
On Fri, 22 Aug 2003 11:48:11 +0200, Martin J Sanchez
Post by Martin J. Sanchez
Si las funciones son POSIX, por que deberia preguntar en un grupo de
windows?
Porque el problema no parece que sea del uso de las funciones, sino de
cómo conseguir esas funciones para windows.
Post by Martin J. Sanchez
Ademas, estas funciones aunque no sean de la libreria C estandar, se
usan frecuentemente en C. Y no creo que haya un grupo mas adecuado que
este.
Vaya, me suena mucho a alguna discusión anterior ;-) Estoy de acuerdo
con que se usan mucho en C, pero no se podrá discutir mejor el efecto
que tiene el uso de esas funciones en windows (o POSIX) que en un grupo
de windows (o POSIX).
Post by Martin J. Sanchez
Por cierto, este grupo no tiene como objeto hablar exclusivamente del
estandar ISO de C. Quizas sea conveniente que eches un vistazo al RFD
de es.comp.lenguajes.c (lo encontraras en rediris), es muy abierto.
No, ya lo busqué, pero no está disponible. ¿Alguien lo tiene?

Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
Martin J. Sanchez
2003-08-22 15:39:55 UTC
Permalink
On Fri, 22 Aug 2003 12:51:18 +0200, Fernando Arbeiza
Post by Fernando Arbeiza
On Fri, 22 Aug 2003 11:48:11 +0200, Martin J Sanchez
Post by Martin J. Sanchez
..
Vaya, me suena mucho a alguna discusión anterior ;-) Estoy de acuerdo
con que se usan mucho en C, pero no se podrá discutir mejor el efecto
que tiene el uso de esas funciones en windows (o POSIX) que en un grupo
de windows (o POSIX).
De acuerdo si hubiese un grupo de POSIX (que no de Windows o unixes).
Pero el caso es que no hay ningun grupo de POSIX en castellano.
Post by Fernando Arbeiza
Post by Martin J. Sanchez
Por cierto, este grupo no tiene como objeto hablar exclusivamente del
estandar ISO de C. Quizas sea conveniente que eches un vistazo al RFD
de es.comp.lenguajes.c (lo encontraras en rediris), es muy abierto.
No, ya lo busqué, pero no está disponible. ¿Alguien lo tiene?
Pues tienes razon! Antes estaba disponible y ahora (desde la increible
mejora de administracion de la jerarquia es.*) no hay forma de hacer o
encontrar nada.

La RFD (y CFV) decia algo como : "grupo de encuentro para aquellos que
usan C, discutir temas relacionados con el lenguaje, intercambio de
ideas y programas, etc". Vamos ... que muy abierto, en contraposicion
con comp.languages.c (lo que segun GNU se denomina 'pedantic').

Un saludo,
Martin.

Loading...