gpt4 book ai didi

c - 带有 Json-C 的架构 x86_64 的 undefined symbol

转载 作者:行者123 更新时间:2023-12-04 12:31:23 25 4
gpt4 key购买 nike

基本上这是我的第一个堆栈溢出问题,所以我很抱歉这里有任何不准确/愚蠢的问题+我已经尝试了 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 安装了软件包之后,我在/usr/local/lib 中没有任何“json-c”文件/文件夹.在 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

与图书馆链接。它在自述文件中的 CMake 设置说明中。

关于c - 带有 Json-C 的架构 x86_64 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51970878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com