From 8a4ae152434ebf6842f5f6bc9b303850d9ea22a4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 21 Dec 2025 16:14:37 +0000 Subject: [PATCH 1/3] Initial plan From a9632f3009ea9549e46339ea8c78b8cd18e6043b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 21 Dec 2025 16:20:24 +0000 Subject: [PATCH 2/3] Fix library linking flags and add documentation for -L, -l, and -I flags Co-authored-by: alcarril <173299695+alcarril@users.noreply.github.com> --- .gitignore | 13 +++++++++++++ Makefile | 8 +++++++- README.md | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f130fff --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# Object files +*.o +*.a + +# Binary +minishell + +# Build directories +obj/ + +# Temporary files +*~ +.DS_Store diff --git a/Makefile b/Makefile index e21909f..49ea1b2 100644 --- a/Makefile +++ b/Makefile @@ -2,12 +2,18 @@ NAME = minishell CC = cc FLAGS = -Wall -Wextra -Werror RM = rm -rf +# Library linking flags: +# -L: Adds to library search path (for finding .a and .so files) +# -l: Links against lib.a or lib.so +# -I: Adds to header (.h) search path (used in INCLUDE_FLAG below) LIBS = -lreadline MKDIR = mkdir -p INCLUDE_DIR = inc LIBFT_DIR = inc/libft LIBFT_A = $(LIBFT_DIR)/libft.a +# Use -L to specify library directory and -l to link the library +LIBFT_FLAGS = -L$(LIBFT_DIR) -lft INCLUDE_FLAG = -I$(INCLUDE_DIR) -I$(LIBFT_DIR) INCLUDE = $(INCLUDE_DIR)/minishell.h @@ -101,7 +107,7 @@ $(NAME): $(OBJS) $(LIBFT_A) @$(MAKE) --no-print-directory message @$(MAKE) --no-print-directory loading_bar @echo "" - @$(CC) $(FLAGS) $(OBJS) $(LIBFT_A) -o $(NAME) $(LIBS) + @$(CC) $(FLAGS) $(OBJS) $(LIBFT_FLAGS) -o $(NAME) $(LIBS) $(OBJ_DIR)%.o: $(SRC_DIR)%.c $(INCLUDE) @$(MKDIR) $(dir $@) diff --git a/README.md b/README.md index ea3048e..275d00d 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ 2. SEÑALES 3. RL 4. ENVIRON + 5. HEREDOCS + 6. FLAGS DE COMPILACIÓN ``` ## 1. GIT @@ -74,3 +76,37 @@ ej1: _=hola -> clave: _ / valor: _=hola ej2: _algo=adios: - ->clave1: _algo / valor1: adios - ->clave2: _ / valor2 _algo=adios + +## 6. FLAGS DE COMPILACIÓN +Es importante entender correctamente los flags de compilación y linkeo en C: + +### Flags de Linkeo de Librerías: +``` +-L: Añade a la ruta de búsqueda de librerías + Se usa para indicar DÓNDE buscar archivos .a y .so + Ejemplo: -L./inc/libft busca librerías en el directorio inc/libft + +-l: Linkea contra la librería lib.a o lib.so + Se usa para indicar QUÉ librería usar + Ejemplo: -lft linkea contra libft.a o libft.so + -lreadline linkea contra libreadline.a o libreadline.so +``` + +### Flags de Includes (Headers): +``` +-I: Añade a la ruta de búsqueda de headers (.h) + Se usa para encontrar archivos .h durante la compilación + Ejemplo: -I./inc permite usar #include +``` + +### Resumen: +- **-L** es para especificar directorios donde buscar librerías (.a, .so) +- **-l** es para linkear contra una librería específica +- **-I** es para especificar directorios donde buscar headers (.h) + +### Uso en el Makefile: +```makefile +LIBFT_FLAGS = -L$(LIBFT_DIR) -lft # Busca en inc/libft y linkea libft.a +LIBS = -lreadline # Linkea libreadline (del sistema) +INCLUDE_FLAG = -I$(INCLUDE_DIR) -I$(LIBFT_DIR) # Headers en inc/ e inc/libft/ +``` From cbb2c64c432d8bf26ba4a991145e719559d8f7c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 21 Dec 2025 16:22:01 +0000 Subject: [PATCH 3/3] Fix Spanish language consistency in README documentation Co-authored-by: alcarril <173299695+alcarril@users.noreply.github.com> --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 275d00d..0eeebf1 100644 --- a/README.md +++ b/README.md @@ -86,10 +86,10 @@ Es importante entender correctamente los flags de compilación y linkeo en C: Se usa para indicar DÓNDE buscar archivos .a y .so Ejemplo: -L./inc/libft busca librerías en el directorio inc/libft --l: Linkea contra la librería lib.a o lib.so +-l: Enlaza contra la librería lib.a o lib.so Se usa para indicar QUÉ librería usar - Ejemplo: -lft linkea contra libft.a o libft.so - -lreadline linkea contra libreadline.a o libreadline.so + Ejemplo: -lft enlaza contra libft.a o libft.so + -lreadline enlaza contra libreadline.a o libreadline.so ``` ### Flags de Includes (Headers): @@ -101,12 +101,12 @@ Es importante entender correctamente los flags de compilación y linkeo en C: ### Resumen: - **-L** es para especificar directorios donde buscar librerías (.a, .so) -- **-l** es para linkear contra una librería específica +- **-l** es para enlazar contra una librería específica - **-I** es para especificar directorios donde buscar headers (.h) ### Uso en el Makefile: ```makefile -LIBFT_FLAGS = -L$(LIBFT_DIR) -lft # Busca en inc/libft y linkea libft.a -LIBS = -lreadline # Linkea libreadline (del sistema) +LIBFT_FLAGS = -L$(LIBFT_DIR) -lft # Busca en inc/libft y enlaza libft.a +LIBS = -lreadline # Enlaza libreadline (del sistema) INCLUDE_FLAG = -I$(INCLUDE_DIR) -I$(LIBFT_DIR) # Headers en inc/ e inc/libft/ ```