架构 x86_64 和 Json-C 的未定义符号

Undefined symbols for architecture x86_64 with Json-C

基本上这是我的第一个堆栈溢出问题,所以我很抱歉这里有任何 inaccuracies/stupid 问题 + 我已经尝试了 3 天来使用人们对类似问题给出的所有其他答案来解决我的问题,但无论哪种方式我对Cmake不够了解或者我从一开始就做错了。

我已经通过 Homebrew 安装了 Json-c (brew install json-c)。我在使用 Cmake 的 macOS 上使用 Clion。 我修改了我的 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" files/folders 在 /usr/local/lib 中。在 usr/local/include 中只有 "json-c" 别名到 brew 目录。

我尝试使用存储库站点 (https://github.com/json-c/json-c) 上提供的说明安装 json-c,但之后我不知道如何设置 CmakeLists.txt项目工作

我做错了什么。我完全不熟悉编程 + 我不太了解 cmake 以及当我通过 git clone 安装新软件包时 macOS/Homebrew 如何管理文件。

你错过了像

这样的东西
LDFLAGS+= -ljson-c

到 link 图书馆。它在他们的 README 中的 CMake 安装说明中。