sisoputnfrba / foro

Foro de consultas para el trabajo práctico
146 stars 5 forks source link

Por alguna razon no puedo usar el struct ADDRINFO o AI_PASSIVE por ejemplo #3454

Closed nicolasrey9 closed 3 months ago

nicolasrey9 commented 3 months ago

Pese a tener las librerias y haber copiado las funciones del TO0, no puedo utilizarlos. image image

iago64 commented 3 months ago

Buenas! Cómo va?

Regla Número 1: Si tenes un problema de código, por favor copia y pega el código utilizando markdown como se indica en el README.md del foro para que los ayudantes podamos hacer un copy/paste del código ya que no somos compiladores humanos.

De todas formas, en lo que mostras, ya a simple vista veo un problema muy grave y es que tenes un include con una ruta absoluta: /home/utnso/Desktop/.../utils/shared.h eso es casi una receta para el desastre absoluto y mas si es el TP que compartís con tus compañeros, ya que otro puede haberse clonado el repo en otra ubicación que no sea Desktop y no le va a compilar ni de onda.

Igual para que no sea un juego de suposiciones, que pasa si queres compilar el tp0? Que errores y/o warnings te tira el compilador? Ya que aunque no lo parezca el compilador muchísimas veces te dice donde estas metiendo la pata.

Saludos.-

RaniAgus commented 3 months ago

¡Buenas! Otro tip para los includes: la estructura que les proveemos está lista para poder escribir la ruta partiendo del src, tanto para cada módulo como para el utils.

Es por esto que en el repo inicial pueden ver la siguiente línea:

#include <utils/hello.h>

Y en la estructura de carpetas de utils se encuentran con:

.
└── src
    └── utils
        ├── hello.h
        └── hello.c

Saludos

DanielKesel commented 3 months ago

Hola!, Estoy teniendo el mismo problema. Lo peor es que yo ya había terminado el TP0 y me andaba todo perfecto, al otro día (hoy) prendí las VMs y de la nada tenía ese error y no puedo enteder por qué. Encontré este issue cerrado: https://github.com/sisoputnfrba/foro/issues/2574 De la forma que el chico lo resuelva a mi no me funciona. Necesito ayuda también. Gracias!

DanielKesel commented 3 months ago

Los errores al compilar son: [{ "resource": "/home/utnso/Desktop/DANI/tp0/client/src/utils.c", "owner": "C/C++: IntelliSense", "code": "3365", "severity": 8, "message": "incomplete class type \"struct addrinfo\" is not allowed", "source": "C/C++", "startLineNumber": 28, "startColumn": 2, "endLineNumber": 28, "endColumn": 7 }] y: [{ "resource": "/home/utnso/Desktop/DANI/tp0/client/src/utils.c", "owner": "C/C++: IntelliSense", "code": "20", "severity": 8, "message": "identifier \"AI_PASSIVE\" is undefined", "source": "C/C++", "startLineNumber": 29, "startColumn": 19, "endLineNumber": 29, "endColumn": 29 }]

RaniAgus commented 3 months ago

Buenas @DanielKesel, no estoy tan seguro de que sea el mismo problema. ¿Podrías crear un issue y complementar el texto de error con capturas de pantalla para saber dónde te aparece el error? Saludos

RaniAgus commented 3 months ago

¡Buenas, @nicolasreypc! ¿Alguna novedad sobre el problema?

nicolasrey9 commented 3 months ago

Me di cuenta que pese a que en VSCode me aparezca asi, puedo compilar y ejecutar igualmente. Aunque me hace un poco de ruido que me lo marque asi.... Gracias por las recomentadiones del #include, ya las implemente.

RaniAgus commented 3 months ago

¿Es posible que tengas abierta la carpeta del repo en lugar del workspace? La configuración que les proveemos les deshabilita los errores de IntelliSense para que aparezcan solo los errores al compilar.

nicolasrey9 commented 3 months ago

No se si es a lo que se refiere tu pregunta, pero tengo el repositorio clonado y trabajo por modulos independientes (osea cuando compilo y ejecuto lo hago dentro del modulo CPU x ejemplo), pero al hacer Ctrl+click para ir a los utils me aparece el "error" este, pero funciona todo bien.

RaniAgus commented 3 months ago

Al igual que en el TP0, en los repos que les proveemos hay un archivo tp.code-workspace que deben usar para importar el TP en VSCode. Si, en lugar de hacer eso, abren directamente la carpeta del repositorio, VSCode no va a cargar ninguna configuración.

Esto lo podés notar si te movés a la pestaña "Run and Debug" y no te aparece ninguna configuración para ejecutar los módulos, o sea:

vscode

Si no te aparece run (kernel), run (memoria), etc., es porque no abriste el TP desde el archivo workspace.

nicolasrey9 commented 3 months ago

Muchisimas gracias!!!!, se arreglo y ademas me facilitaste 10 veces la vida ajajaj

RaniAgus commented 3 months ago

¡Buenísimo! Una vez resuelta la duda o problema no olviden cerrar el issue :)