По сути, это мой первый вопрос о переполнении стека, поэтому я прошу прощения за любые неточности / глупые вопросы здесь + Я пытался в течение 3 дней решить свою проблему, используя все другие ответы, которые люди давали на аналогичные вопросы, но в любом случае я не знаю Cmake достаточно или я с самого начала делаю что-то не так.
Я установил Json-c через Homebrew (brew install json-c). Я использую Clion в macOS, в которой используется Cmake. Я изменил свои списки CmakeLists:
cmake_minimum_required(VERSION 3.10)
project(Project C)
set(CMAKE_C_STANDARD 99)
INCLUDE_DIRECTORIES(/usr/local/Cellar/json-c/0.13.1/include/json-c)
LINK_DIRECTORIES(/usr/local/Cellar/json-c/0.13.1/lib)
add_executable(Project main.c functions.c functions.h exp_functions.c exp_functions.h)
TARGET_LINK_LIBRARIES(Project)
но я не знаю, как задать аргументы для TARGET_LINK_LIBRARIES.
Когда я пытаюсь создать проект, он дает мне следующее:
Undefined symbols for architecture x86_64:
"_json_object_new_double", referenced from:
_GenerateJson in functions.c.o
"_json_object_new_object", referenced from:
_GenerateJson in functions.c.o
"_json_object_new_string", referenced from:
_GenerateJson in functions.c.o
"_json_object_object_add", referenced from:
_GenerateJson in functions.c.o
"_json_object_to_json_string", referenced from:
_GenerateJson in functions.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Судя по тому, что я нашел в Интернете, у кого-то была аналогичная проблема (https://github.com/json-c/json-c/issues/235), но после того, как я установил пакет через Brew, у меня нет файлов / папок «json-c» в / usr / local / lib. В каталоге usr / local / include есть только псевдоним json-c.
Я попытался установить json-c, используя инструкции, представленные на сайте репозитория (https://github.com/json-c/json-c), но после этого я понятия не имел, как установить CmakeLists.txt, чтобы проект работал.
Что я делаю не так. Я совсем новичок в программировании + я плохо разбираюсь в cmake и том, как macOS / Homebrew управляет файлами, когда я устанавливаю новые пакеты через git clone.





Вам не хватает чего-то вроде
LDFLAGS+= -ljson-c
связать с библиотекой. Это было в инструкции по установке CMake в их README.
@BozonK, поскольку вы новый пользователь, я хочу посоветовать вам прими этот ответ, если это было полезно.
Хорошо, я понял. Спасибо за помощь :)