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

博宗

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

我已经通过Homebrew(brew install json-c安装了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中的brew目录只有一个“ json-c”别名。

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

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

安东·马利舍夫(Anton Malyshev)

您缺少类似的东西

LDFLAGS+= -ljson-c

链接到图书馆。在自述文件中有关CMake的设置说明中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用多个文件时出现“架构 x86_64 的未定义符号”错误

使用C ++链接列表创建时编译错误。架构x86_64的未定义符号:

C ++使用指针时获取体系结构x86_64的未定义符号

使用g ++编译C ++程序的体系结构x86_64的未定义符号

使用Catalina C ++进行卷曲失败,并获得“体系结构x86_64的未定义符号”

C ++:使用“ std”时出现“体系结构x86_64的未定义符号”错误

使用ORKESerializer时体系结构x86_64的未定义符号

在Qt5上使用静态库:体系结构x86_64的未定义符号:

体系结构x86_64的未定义符号:在Qt Creator上,我正在使用OSX 10.10.3

架构x86_64抖动的未定义符号

架构x86_64的未定义符号:“ _fcloseall”

ProgressHUD:架构 x86_64 的未定义符号:

错误架构x86_64的未定义符号:

在OSx上使用CMake构建C ++项目:ld:找不到架构x86_64的符号

使用gtest和clang 12编写单元测试时,体系结构x86_64的未定义符号

Boost C ++的架构x86_64的未定义符号

Mac上的架构x86_64 C ++的未定义符号

架构x86_64的未定义符号->架构x86_64的未找到符号

Kotlin Multiplatform - Objective-C 互操作性架构问题 x86_64 架构的未定义符号

架构x86_64的未定义符号:OS X,Boost Log,CMake

架构x86_64的未定义符号:带有SFML的CMMotionManager

Boost.MPI 为架构 x86_64 提供未定义符号

如何解决架构x86_64的未定义符号

Hello World中架构x86_64的未定义符号

架构x86_64的未定义符号是什么意思?

Xcode 6.3上架构x86_64的未定义符号

SFML 2.1架构x86_64错误的未定义符号

iOS中架构x86_64的未定义符号

由于架构 x86_64 的未定义符号,GLFW 的最小示例失败