Estoy haciendo el curso CS50x de Harvard. Mi SO es Windows 10, y estoy tratando de seguir los ejemplos básicos del profesor. Ya tengo instalado el MingGW para compilar en VSCode, y he añadido los archivos "cs50.h" y "cs50.c" a la carpeta "C:\MinGW\include". Mi código es el siguiente:
#include <stdio.h>
#include <cs50.h>
int main (void)
{
string answer = get_string("What's your name? ");
printf("hello, %s.\n", answer);
return 0;
}
y obtengo el siguiente error al intentar compilar el archivo en "hello.c":
Iniciando la compilación...
C:/MinGW/bin/gcc.exe -fdiagnostics-color=always -g "C:\Users\la nueva estancia\dev\Harvard CS50x\hello.c" -o "C:\Users\la nueva estancia\dev\Harvard CS50x\hello.exe" -Wall -Wextra -Wpedantic
c:/mingw/bin/../lib/gcc
/mingw32/9.2.0/../..
/..
/../mingw32/bin/ld.exe: C:\Users\LANUEV~1\AppData\Local\Temp\ccU7QnSG.o: in function `main':
C:/Users/la nueva estancia/dev/Harvard CS50x/hello.c:6: undefined reference to `get_string
'
collect2.exe: error: ld returned 1 exit status
La compilación ha finalizado con errores.
Nota: He logrado resolver parcialmente el problema, colocando el archivo "cs50.c" en la carpeta del archivo "hello.c" y ejecutando el siguiente comando (juntando los 2 archivos):
gcc -o hello hello.c cs50.c
Buscando en internet encontré esa solución pero no me parece una solución "definitiva" y agradecería cualquier otra solución ya que no me gustaría tener que escribir ese comando cada vez que desee compilar un archivo. Desde ya muchas gracias!
EDICIÓN: Cuando intento incluir el archivo "cs50.c" en el inicio de código de esta manera:
#include <stdio.h>
#include <cs50.h>
#include "cs50.c"
Me sale el siguiente error:
Iniciando la compilación...
C:/MinGW/bin/gcc.exe -fdiagnostics-color=always -g "C:\Users\la nueva estancia\dev\Harvard CS50x\hello.c" -o "C:\Users\la nueva estancia\dev\Harvard CS50x\hello.exe" -Wall -Wextra -Wpedantic
C:\Users\la nueva estancia\dev\Harvard CS50x\hello.c: In function 'main':
C:\Users\la nueva estancia\dev\Harvard CS50x\hello.c:7:32: warning: passing argument 1 of 'get_string' from incompatible pointer type [-Wincompatible-pointer-types]
7 | string answer = get_string("What's your name? ");
| ^~~~~~~~~~~~~~~~~~~~
| |
| char *
In file included from C:\Users\la nueva estancia\dev\Harvard CS50x\hello.c:3:
C:\Users\la nueva estancia\dev\Harvard CS50x\cs50.c:78:28: note: expected 'char **' but argument is of type 'char *'
78 | string get_string(va_list *args, const char *format, ...)
| ~~~~~~~~~^~~~
C:\Users\la nueva estancia\dev\Harvard CS50x\hello.c:7:21: error: too few arguments to function 'get_string'
7 | string answer = get_string("What's your name? ");
| ^~~~~~~~~~
In file included from C:\Users\la nueva estancia\dev\Harvard CS50x\hello.c:2:
c:\mingw\include\cs50.h:108:8: note: declared here
108 | string get_string(va_list *args, const char *format, ...) __attribute__((format(printf, 2, 3)));
| ^~~~~~~~~~
La compilación ha finalizado con errores.