Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

main.c:2:10: fatal error: cjson/cJSON.h: No such file or directory

Alura, por favor, podem ajudar? Tentei compilar o programa de exemplo do Json escrito em linguagem C abaixo:

#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
// create a cJSON object
cJSON *json = cJSON_CreateObject();
cJSON_AddStringToObject(json, "name", "John Doe");
cJSON_AddNumberToObject(json, "age", 30);
cJSON_AddStringToObject(json, "email", "john.doe@example.com");
// convert the cJSON object to a JSON string
char *json_str = cJSON_Print(json);
// write the JSON string to a file
FILE *fp = fopen("data.json", "w");
if (fp == NULL) {
printf("Error: Unable to open the file.\n");
return 1;
}
printf("%s\n", json_str);
fputs(json_str, fp);
fclose
// free the JSON string and cJSON object
cJSON_free(json_str);
cJSON_Delete(json);
return 0;
}

utilizando o seguinte makefile:

# your Makefile, replace four spaces with tab
CC=gcc
CFLAGS+=-Wall -Wextra -g
RM=rm -f
MY_SOURCES=$(wildcard *.c)
## above could be an MY_SOURCES= file1.c file2.c otherfile.c
MY_OBJECTS=$(patsubst %.c,%.o,$(MY_SOURCES))
#
LIBES=-lcjson
#
.PHONY:all clean
##
all:myprog
##
clean:
    $(RM)myprog *.o *~
myprog:$(MY_OBJECTS)
₢

O gcc está me devolvendo: main.c:2:10: fatal error: cjson/cJSON.h: No such file or directory main.c:2:10: fatal error: cjson/cJSON.h: No such file or directory )

2 respostas

E aí! O erro fatal error: cjson/cJSON.h: No such file or directory indica que o compilador não consegue encontrar o cabeçalho cJSON.h na sua máquina. Isso provavelmente significa que a biblioteca cJSON não está instalada no seu sistema ou o compilador não sabe onde encontrá-la.

Você precisa garantir que a biblioteca cJSON esteja instalada na sua máquina. Você pode instalar usando o gerenciador de pacotes do seu sistema ou baixando manualmente e compilando. Para sistemas baseados em Debian/Ubuntu, você pode usar:

sudo apt-get install libcjson-dev

Se estiver em um sistema diferente, você pode precisar procurar a forma correta de instalar a biblioteca cJSON.

Se você já instalou a biblioteca cJSON e ainda está recebendo o erro, pode ser que o compilador não esteja procurando no local correto. Nesse caso, você pode precisar especificar o caminho para o cabeçalho cJSON.h usando a flag -I do gcc no seu Makefile.

Se a biblioteca estiver instalada em um local padrão, você pode adicionar -I/usr/include ao CFLAGS no seu Makefile:

CFLAGS+=-Wall -Wextra -g -I/usr/include

Se a biblioteca estiver em um diretório específico, ajuste o caminho de acordo.

Depois de fazer essas alterações, tente compilar o seu código novamente usando o comando make.

solução!

Instalei a biblioteca cJSON: **Instalei a biblioteca cJSON**

adicionei -I/usr/include ao CFLAGS no seu Makefile

adicionei -I/usr/include ao CFLAGS no seu Makefile

Compilei e executei o programa exemplo do Json perfeitamente. Muito obrigado pela passagem de conhecimento e pró atividade!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software