clion在使用sqlite3的时候,显示Undefined symbols for architecture x86_64错误的解决办法

显示Undefined symbols for architecture x86_64错误的原因

1、缺少静态库

  • 环境:在模拟器上报错但在真机上能运行成功,而且报的错误来自于第三方库。
  • 原因:architecture x86_64 是指模拟器的架构,意思就是 Crypto 变量在模拟器架构里没有找到。静态库也分不同架构的,可能你项目里使用的这个库只用了真机版本的(该静态库不支持在模拟器下编译),没有使用模拟器版本的,所以模拟器跑的时候没有找到对应的库,这些需要的变量也就缺失了。
  • 解决方法:把模拟器版的库也下下来,然后跟真机版的合成一个静态库,这样就通用了。PS:有些第三方库只有真机版本的,所以就只能真机调试了。

2、缺少库或框架

  • 环境:导入某一个类,在模拟器真机都运行报错。
  • 原因:可能这个类所属的库或框架(这个类引用的库或框架)没有被添加到项目中。比如你在项目中使用了sqlite3,但是没有添加 libsqlite3.dylib

解决办法

  • 安装完sqlite3之后,会在/usr/lib文件夹下面存在动态库文件,可以使用ls命令进行查看

  • 配置CMAKELIST.txt文件
  • link_libraries("/usr/lib/libsqlite3.dylib")

参考链接

  • Undefined symbols for architecture x86_64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础——Java反射机制及IoC原理

一、概念 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所…

Ubuntu boost库文件安装编译

简单介绍 Boost库是为C语言标准库提供扩展的一些C程序库的总称,由Boost社区组织开发、维护.Boost向来有准标准库之称,很多新特性例如智能指针等都是先在boost中实现,后来被吸收到标准库之中. Boost实现了日志、算法、日期、地理、数学、线程…

Java基础——类加载机制及原理

一、什么是类的加载? 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Cl…

在Ubuntu环境下使用vcpkg安装sqlite_orm包文件

Ubuntu安装vcpkg 从github下载vcpkg的安装包,在usr/local路径下面执行如下命令 git clone https://github.com/Microsoft/vcpkg.git cd vcpkg //进入源码目录 ./bootstrap-vcpkg.sh //执行./bootstrap-vcpkg.sh进行编译安装,这个过程很慢 编译安装好…

finally语句与return语句的执行顺序

网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的: try语句没有被执行到…

window电脑查看ssh公钥,以及将自己的公钥添加到Github等类似网站

查看本机的ssh公钥 使用命令 cd ~/.ssh使用命令 ls 可以看到 id_rsa id_rsa.pub known_hosts 三个文件,此处需要的是id_rsa.pub文件使用命令 cat id_rsa.pub 查看文件的内容拷贝这段内容 添加自己的公钥 进入账户的设置页面参照如下步骤,进入SSH Key…

java八大排序算法

一、概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。 当n较大,则应采…

密钥安全性讨论之密钥分层管理结构

密钥分层管理结构 密钥的安全管理通常采用层次化的保护方法。密钥管理分层管理机制将密钥分为三层,即根密钥、密钥加密密钥和工作密钥下层密钥为上层密钥提供加密保护,采用分层的密钥结构有助于密钥的管理满足本规范的要求 工作密钥 工作密钥对本地保存…

windows安装 Git Large File Storage大文件下载工具ge

下载地址 导航到 git-lfs.github.com 并单击Download开始下载git-lfs的用法指南 验证安装成功 打开Git Bash验证安装成功,使用命令 git lfs install ,如果出现 >Git LFS initlized,就代表安装成功参考链接 安装 Git Large File Storag…

Java基础——volatile关键字解析

简介volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键…

Linux ubuntu对于cmake的版本更新

问题产生 在ubuntu环境下运行C代码,工程文件中CMakeLists文件显示要求cmake的版本最低是3.15,但是我的本地版本是3.11,虽然修改CMakelists文件为3.11也是可以编译通过,但是潜在的问题是未知的。 查看本地cmake的版本 cmake --ve…

Java基础——Java IO详解

一、概述 1、Java IO Java IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控…

Java基础——Java NIO详解(二)

一、简介 在我的上一篇文章Java NIO详解(一)中介绍了关于标准输入输出NIO相关知识, 本篇将重点介绍基于网络编程NIO(异步IO)。 二、异步IO 异步 I/O 是一种没有阻塞地读写数据的方法。通常,在代码进行 rea…

Java基础——Java NIO详解(一)

一、基本概念 1、I/0简介 I/O即输入输出,是计算机与外界世界的一个借口。IO操作的实际主题是操作系统。在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通过stream对象一次移动一个字节。流IO负责把对象…

MAC上Git安装与GitHub基本使用

参考链接 MAC上Git安装与GitHub基本使用

Java基础——深入理解Java线程池

简介 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,…

密码机项目安装软件时候出现的问题以及对应的解决办法

Could NOT find Boost (missing: locale) (found version "1.65.1") 使用命令 apt-get install libboost-locale-dev 进行安装 解决普通用户cmake版本11,而root用户版本15,clion对于版本兼容的问题 修改clion里面的toolchain,将其…

Java基础——线程及并发机制

前言 在Java中,线程是一个很关键的名词,也是很高频使用的一种资源。那么它的概念是什么呢,是如何定义的,用法又有哪些呢?为何说Android里只有一个主线程呢,什么是工作线程呢。线程又存在并发,并…

密码机 密钥管理项目安装配置 从零开始

安装gcc 更新sudo apt-get update下载gcc sudo apt-get install gcc参考链接 不推荐 安装g 下载g sudo apt-get install g 安装make sudo apt -get install make参考链接 安装cmake 下载地址参考链接 安装ssh sudo apt-get install ssh 安装git和配置 sudo apt-get inst…