精华内容
下载资源
问答
  • windows10主要的库
    千次阅读
    2021-10-03 15:58:28

    主要内容

    在Windows10中,安装基于python的redis库,并连接redis-server服务器
    python中使用redis库操作字符串、哈希、列表、集合和有序集合

    安装准备

    1. 确保已经在本地安装了redis-server服务器,这里以在windows10上安装redis为例,安装过程可参考

    Windows10安装Redis5.0.9总结

    1. 启动redis-server
    #若是没有把redis没有把redis的根目录配置到配置环境变量中,则需要先切换到根目录再执行:
    redis-server
    #启动redis服务后,使用以下命令启动客户端:
    redis-cli
    #若显示以下信息说明启动redis-server可被正常连接
    #C:\Users\Lenovo>redis-cli
    #127.0.0.1:6379>
    
    1. 这里假设你已经具备了python的开发环境,并且可在pycharm开发工具中正常使用

    若没有安装redis,这里则需要在pycharm的Terminal中执行:

    pip install redis
    

    python中使用redis

    示例1:redis连接、字符串键值对操作

    import redis
    
    
    # 普通连接
    def redis_connect():
        rd = redis.StrictRedis(host='127.0.0.1', port=6379, db=0, decode_responses=True)
        try:
            rd.set('mykey', 'myvalue')
            print(rd.get('mykey'))
        except Exception as e:
            print(f'connect failed:{e}')
    
    
    # 使用redis连接池获取连接
    def redis_pool_connect():
        # 连接池
        pool = redis.ConnectionPool(max_connections=100, host='127.0.0.1', port=6379, db=1, decode_responses=True)
        rd = redis.Redis(connection_pool=pool)
        return rd
    
    
    # get、set、delete方法
    def set_test():
        rd = redis_pool_connect()
        try:
            rd.set('username', "张三")
            print('xxxx')
            username = rd.get('username')
            print(f"username={username}")
            res = rd.delete(username)
            print(f'删除res={res}')
        except Exception as e:
            print(f'redis异常:{e}')
    
    
    # mset,mget方法
    def mset_test():
        rd = redis_pool_connect()
        # 同时设置多个键值对
        rd.mset({'name1': 'mike', "name2": 'Tom', "name3": 'Jason'})
        # 取出多个键对应的值,返回list
        names = rd.mget("name1", "name2", "name3")
        print(f"mget----names={names}")
        # ['mike', 'Tom', 'Jason']
    
        # 取出某个值,并且再设置这个值为新的
        # name1 = rd.get("name1")
        # print(f"name1={name1}")
        # rd.set("name1", "Lucy")
    
        name = rd.getset("name1", "Lucy")
        print(f"name={name}")
        name1 = rd.get("name1")
        print(f"name1={name1}")
        # 如果不存在则返回:None
        res = rd.get("name999")
        if res:
            print('not exist')
    
    
    # hset,hget, hekeys方法
    def hset_test():
        rd = redis_pool_connect()
        rd.hset("myhash", "key1", "value1")
        rd.hset("myhash", "key2", "value2")
        keys = rd.hkeys("myhash")
        print(f'所有键:{keys}')
        values = rd.hvals("myhash")
        print(f'所有值:{values}')
        ret = rd.hexists("myhash", "key1")
        if ret:
            print("[hexists] key1 存在")
        else:
            print("[hexists] key1 不存在")
        # hget不存在返回None
        val = rd.hget("myhash", "key14")
        print(f"[hget]key---{val}")
    
    
    # hmset,hmvals 方法
    def hmset_test():
        rd = redis_pool_connect()
        # DeprecationWarning: Redis.hmset() is deprecated. Use Redis.hset() instead.
        rd.hmset("namehash", {"name1": "zhangsna", "name2": "lisi", "name3": "wangwu"})
        keys = rd.hkeys("namehash")
        print(f'[hkeys]所有键的名称:{keys}')
        vals = rd.hvals("namehash")
        print(f'[hvals]所有的值:{vals}')
    
        name1, name2 = rd.hmget("namehash", "name1", "name2")
        print(f'[hmget]name1的值:{name1},name2的值:{name2}')
    
        rd.hmset("mymhash", {"key1": "value1", "key2": "value2"})
        res = rd.hmget("mymhash", "key1", "key2")
        print(res)
    
    
    if __name__ == '__main__':
        set_test()
        mset_test()
        hset_test()
        hmset_test()
    
    

    示例2:redis集合、列表操作

    # 连接池
    import redis
    
    pool = redis.ConnectionPool(max_connections=100, host='127.0.0.1', port=6379, db=1, decode_responses=True)
    rd = redis.Redis(connection_pool=pool)
    
    
    def redis_list():
        # 列表左边压入元素
        rd.lpush("mylist", "a")
        rd.lpush("mylist", "b", "c", "d", "e", "f")
        elem = rd.lpop("mylist")
        print(f'列表头部弹出元素:{elem}')
        # 右边压入
        rd.rpush("mylist", 1, 2, 3)
        len = rd.llen("mylist")
        print(f"列表元素个数:{len}")
        # 取出第1个元素到最后一个元素
        arr = rd.lrange("mylist", 0, -1)
        print(f'列表中所有元素{arr}')
        elem = rd.rpop("mylist")
        print(f"列表右边谈出一个元素:{elem}")
        elem = rd.lindex("mylist", 0)
        print(f"查看第1个元素:{elem}")
        rd.delete("mylist")
        print(f"删除mylist后长度:{rd.llen('mylist')}")
    
    
    def set_test():
        rd.sadd("myset", "value1", "value2", "value3", "value4", "value5")
        elems = rd.sscan('myset')
        print(f"集合中所有元素:{elems}")
        elems = rd.smembers("myset")
        print(f"集合中所有元素:{elems}")
        # 添加一个重复的元素,返回0
        res = rd.sadd("myset", "value2")
        print(f"加入一个重复的元素:{res}")
        res = rd.sismember("myset", "value1")
        print(f"myset中是否有一个成员:{res}")
        res = rd.srem("myset", "value1")
        print(f"删除元素的个数:{res}")
        print(f"元素是否存在:{rd.sismember('myset', 'value1')}")
        elem = rd.spop("myset")
        print(f"删除一个元素:{elem}")
    
    
    def set_calculate():
        rd.sadd("myset1", "a", "b", "c")
        elems = rd.smembers("myset1")
    
        print(f"myset1元素:{elems}")
        elems = rd.smembers("myset2")
    
        rd.sadd("myset2", "c", "d", "e", "f")
        print(f"myset2元素:{elems}")
        # 属于myset1但不属于myset2的集合
        df = rd.sdiff("myset1", "myset2")
        print(f"两个集合的差集:{df}")
    
        inter = rd.sinter("myset1", "myset2")
        print(f"集合的交集:{inter}")
    
        union = rd.sunion("myset1", "myset2")
        print(f"集合的并集:{union}")
    
    
    def zset_test():
        # 数值表示有序集合元素的分值
        dic = {"张三": 80, "李四": 95}
        rd.zadd("users", dic)
        rd.zadd("users", {"王五": 83, "赵六": 79, "小昭": 93, "小明": 89})
        nums = rd.zcard("users")
        print(f"有序集合的个数:{nums}")
        # withscores=True表示显示成员的分数
        elems = rd.zrange("users", 0, -1, withscores=True)
        print(f"所有有序集合:{elems}")
        # 删除有序集合中元素
        rd.zrem("users", "李四")
        elems = rd.zrange('users', 0, -1)
        print(f"所有元素集合:{elems}")
        # 删除0,1元素
        # rd.zremrangebyrank("users", 0, 1)
        # print(f"删除集合之后:{rd.zrange('users', 0, -1)}")
        rd.zremrangebyscore("users", 80, 90)
        print(f"删除分值[80,90]范围的集合之后:{rd.zrange('users', 0, -1, withscores=True)}")
    
    if __name__ == "__main__":
        redis_list()
        set_test()
        set_calculate()
        zset_test()
    
    

    更多详细可参考官方文档:python的redis库

    更多相关内容
  • windows下python常用的安装

    万次阅读 多人点赞 2018-12-23 00:49:23
    windows下python常用的安装,前提安装了annaconda 的python开发环境。只要已经安装了anaconda,要安装别的就很简单了。只要使用pip即可,正常安装好python,都会自带pip安装 工具,在python的scripts安装目录下...

          windows下python常用库的安装,前提安装了annaconda 的python开发环境。只要已经安装了anaconda,要安装别的库就很简单了。只要使用pip即可,正常安装好python,都会自带pip安装 工具,在python的scripts安装目录下可以查看。具体安装步骤:使用Anaconda在windows下管理python开发环境  python常用库的安装是python爬虫开发的基石。

    1.urllib 和re库的安装

    这两个库是python自带的库,只要正确安装了python,都可以直接调用者两个库,python模式下验证如下

    >>> import urllib
    >>> import urllib.request
    >>> urllib.request.urlopen('http://www.baidu.com')
    <http.client.HTTPResponse object at 0x0000024222C09240>
    >>> import re
    >>>

    2.requests请求库的安装

    pip3 install requests  dos下执行命令即可安装
    
    python交互下测试request请求库是否安装正确
    >>> import requests
    >>> requests.get('http://www.baidu.com')
    <Response [200]>
    >>>

    3.selenium库的安装

    主要是用来驱动浏览器,做测试之类的,js渲染调试

    pip3 install selenium 执行安装 ,删除库的话直接pip3 uninstall selenium
    
    测试是否安装正确
    >>> import selenium
    >>> from selenium import webdriver
    >>> driver = webdriver.Chrome()  
    #这个时候系统会启动一个空白浏览器,如果失败需要安装chromdriver驱动,将其解压后放到python配置环境变量后的目录下即可
    
    DevTools listening on ws://127.0.0.1:12052/devtools/browser/1f2faef9-0748-40f0-b955-9e41362ce55e
    >>>> driver = webdriver.Chrome()
    
    DevTools listening on ws://127.0.0.1:12722/devtools/browser/5ba65a50-df4a-47fd-b2d6-d313578d539d
    >>> driver.get('http://www.baidu.com')  #这个时候打开的浏览器就会跳转到百度首页。
    >>>driver.page_source   #可以直接打印当前百度网页的代码

    4.phantomjs 库的安装

      无界面浏览器 ,命令行下浏览器驱动实现,跟selenium相辅,前者会打开浏览器

    1.在phantomjs官网下载phantomjs安装包,http://phantomjs.org/download.html   

    2.放到指定安装目录后,配置环境变量,bin目录

    3.直接在dos下执行phantomjs看是否配置成功,如下:

    
    C:\Users\Robot_CHEN>phantomjs
    phantomjs>
    

    4.安装与功能测试 

    >>> import selenium
    >>> from selenium import webdriver
    >>> driver = webdriver.PhantomJS()  #注意区别selenium中的webdrive.Chrom()
    >>> driver.get('http://www.baidu.com')
    >>> driver.page_source

    5.lxml库的安装

    xpath网页解析库,实现网页解析。pip3 install lxml  直接安装即可

    python交互下,用import lxml确认是否安装成功

    6.beatifulsoup 网页解析库的安装,依赖于lxml库

    安装:pip3 install beatifulsoup4 

    测试安装:

    >>> from bs4 import BeautifulSoup  #使用beautifulsoup要从 bs4模块中导入
    >>> soup = BeautifulSoup('<html></html>','lxml')
    >>>

    7.pyquery网页解析库的安装

    pip3 install pyquery 执行安装.

    >>> from pyquery import PyQuery as pq
    >>> doc = pq('<html></html>')
    >>> doc = pq('<html>Hello World</html>')
    >>> result = doc('html').text()
    >>> result
    'Hello World'
    >>>

    8.pymysql存储库的安装

    操作mysql数据库的驱动库 安装命令:pip3 install  pymysql .安装完成后用代码python操作mysql数据库,执行CRUD.

    
    import pymysql  #导入 pymysql
     
    #打开数据库连接
    db= pymysql.connect(host="localhost",user="root",
     	password="123456",db="mydatabase",port=3306)
     
    # 使用cursor()方法获取操作游标
    cur = db.cursor()
     
    #1.查询操作
    # 编写sql 查询语句  user 对应我的表名
    sql = "select * from emp3"
    try:
    	cur.execute(sql) 	#执行sql语句 
    	results = cur.fetchall()	#获取查询的所有记录
    	print("id","name","password")
    	#遍历结果
    	for row in results :
    		id = row[0]
    		name = row[1]
    		password = row[2]
    		print(id,name,password)
    except Exception as e:
    	raise e
    finally:
    	db.close()

    9.pymongo的安装,操作mongodb数据

    安装依旧pip install pymongo

    import pymongo
    
    client = pymongo.MongoClient('localhost')
    db = client['mymongodb']
    coll = db['mycoll']
    mydict = { "name": "RUNOOB", "alexa": "10000" }
    coll.insert_one(mydict)
    print(coll)
    '''测试结果如下:
    Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mymongodb'), 'mycoll')
    '''

    10.redis的安装

    pip install redis安装即可

    import redis
    
    result = redis.Redis('localhost',6379)
    result.set('name','jack')
    print(result.get('name')) #b'jack'

    11.flask的安装,主要设置web时使用

    可以在flask的官网文档查看,http://docs.jinkan.org/docs/flask/

    安装方式 pip install flask,测试python交互模式下import flask看是否报错

    12django的安装,web服务器框架

    安装很简单pip install django,测试导入import django

    13.jupyter安装,强大的记事本

    pip  install jupyter即可安装,如果使用的anaconda,则默认已经安装了jupyter,主要用来在线写代码和文档记录,功能很强大也很方便。

    统一声明:关于原创博客内容,可能会有部分内容参考自互联网,如有原创链接会声明引用;如找不到原创链接,在此声明如有侵权请联系删除哈。关于转载博客,如有原创链接会声明;如找不到原创链接,在此声明如有侵权请联系删除哈。 

    展开全文
  • 使用了两位大佬的方法 ...第一步:在Windows10下,下载并安装QtCreator 1、Qt版本:Qt5.12.11。 2、下载链接:https://download.qt.io/official_releases/qt/5.12/5.12.11/ 3、安装过程:略。本文安装在“D:

    使用了两位大佬的方法
    https://blog.csdn.net/y_q_m/article/details/120319055
    https://blog.csdn.net/hanxv_1987/article/details/104671950

    第一步:在Windows10下,下载并安装QtCreator

    1、Qt版本:Qt5.12.11。
    2、下载链接:https://download.qt.io/official_releases/qt/5.12/5.12.11/
    在这里插入图片描述

    3、安装过程:略。本文安装在“D:\Softwares\Qt5.12.11”路劲下。

    第二步:下载Qt5.12.11源码

    1、下载链接:https://download.qt.io/official_releases/qt/5.12/5.12.11/single/
    在这里插入图片描述

    将源码解压后放在“D:\Softwares\qt-everywhere-src-5.12.11”路径下。
        在路径“D:\Softwares\qt-everywhere-src-5.12.11\qtbase\mkspecs”文件夹下,可以找到linux-aarch64-gnu-g++文件夹。用文本编辑器打开文件夹内的qmake.conf文件,即可查看源码编译时使用的编译器,这里默认使用的编译器是aarch64-linux-gcc和aarch64-linux-g++。

    第三步:下载交叉编译器

    1、交叉编译器名称:gcc-arm-11.2-2022.02-mingw-w64-i686-aarch64-none-linux-gnu
    2、下载路径:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads

    3、安装路径
       将gcc-arm-11.2-2022.02-mingw-w64-i686-aarch64-none-linux-gnu.tar.xz解压后(用7-zip软件),放在D盘Softwares文件夹下。

    第四步:安装关联软件

    一、安装Active Perl

    1、下载地址:https://www.perl.org/get.html,下载Window10 架构下的ActivePerl 5.12以上版本。
    在这里插入图片描述

    2、设置环境变量:安装完成后将“<安装路径>\bin”添加至环境变量。

    二、安装python

    1、下载地址:https://www.python.org/downloads,下载Window10 架构下的Python2.7以上版本。
    2、设置环境变量:安装完成后将“<安装路径>\bin”添加至环境变量。

    三、安装MinGW开发工具集

    1、下载地址:https://download.csdn.net/download/yue_chen/10412191,下载Window10 架构下的64位版本。
    2、直接解压,然后放在“D:\Softwares\MinGW64”路径下。
    3、设置环境变量:将“D:\Softwares\MinGW64\bin”添加至环境变量。
    4、安装Qt Creator时,已安装“MinGW工具”,所以此步骤不一定需要。

    第五步:编译Qt源码

    一、打开Windows10下命令行

    一定,务必,要通过“Qt Creator”打开命令行,如下图。千万不用通过“cmd”打开。
    在这里插入图片描述

    二、在命令行下,进入Qt源码目录

    在命令行下,通过“cd D:\Softwares\qt-everywhere-src-5.12.11”命令,进入Qt源码目录。
    在这里插入图片描述

    三、编译配置(耗时约3分钟)

    1、在命令行下,执行configure.bat -release -opensource -prefix D:\Softwares\Qt5.12.11-ARMv8 -nomake tests -nomake examples -no-opengl -skip qtvirtualkeyboard -platform win32-g++ -xplatform linux-aarch64-gnu-g++命令。
    在这里插入图片描述

    2、根据命令行提示,输入y,最后完成编译配置。

    3、配置属性说明:
    3.1 -release:编译release版本。
    3.2 -opensource:表示开源许可;
    3.3 -prefix Qt安装路径。根据上文命令,编译好的Qt库放在D:\Softwares\Qt5.12.11-ARMv8目录下。
    3.4 -nomake:表示不编译后面参数指定的模块;
    3.5 -no-opengl 表示不安装OpenGL。
    3.6 -skip 表示不安装的qt工具包,工具包的名称即为源码路径下的文件夹名称。-skip qtvirtualkeyboard表示跳过qtvirtualkeyboard,没有相应库环境,不编译,否则编译和安装过程中可能会报错。
    3.7 -platform:为win32-g++,即指定本地编译器配置目录,到qtbase\mkspecs\ win32-g++目录里读取qmake.conf文件,找到本地编译工具来编译qmake。
    3.8 -xplatform 表示使用源码路径qtbase\mkspecs\linux-aarch64-gnu-g++文件夹内的配置,编译时会自动去该路径下找到配置文件进行编译。

    在命令行内输入“configure -help”命令,可查看详细配置说明。

    四、编译(耗时约3小时)

    在命令行下,执行mingw32-make -j2命令,完成编译。

    五、安装(耗时约20分钟)

    在命令行下,执行mingw32-make install命令,完成安装。

    第六步:配置Qt Creator

    QtCreator4.9.1的配置过程和之前的QtCreator版本配置项相同,配置位置略有差异,主要配置流程如下:
    1、配置QMake
    打开“工具->选项->kits”,选择Qt Version页面
    在这里插入图片描述

    点击右侧添加按键,选择编译出的源码路径下的bin文件(就是配置Qt源码编译后存放编译结果的那个路径)夹内的QMake.exe即可。
    在这里插入图片描述

    2、配置编译器Compilers
    该部分主要添加C++和C的编译器,用于编译arm版本的代码,
    设置GCC的C编译器,打开“工具->kits->编译器(Compilers)”
    在这里插入图片描述

    右侧选择“添加->GCC->C”,编译器路径即为gnu工具中的C编译器aarch64-linux-gnu-gcc所在路径,ABI设置为arm-linux-generic-elf-64bit
    设置GCC的C++编译器,打开“工具->kits->编译器(Compilers)”,右侧选择“添加->GCC->C++”,编译器路径即为gnu工具中的C++编译器aarch64-linux-gnu-g++所在路径,ABI设置为arm-linux-generic-elf-64bit
    在这里插入图片描述

    配置完成后在kits的编译器页面会出现对应的配置项,如下
    在这里插入图片描述

    3、配置Debuggers
    该部分配置调试工具,使用gnu编译器所在文件夹下的gdb调试工具,
    打开“工具->选项->kits->Debuggers”,点击Add添加新的调试工具,这里选择gnu编译工具集合下的aarch64-linux-gnu-gdb工具,在gnu工具下的aarch64-linux\bin路径
    在这里插入图片描述

    配置结束后会在Debuggers页面下新增调试工具
    在这里插入图片描述

    4、配置CMake
    该部分用于编译得到嵌入式系统下的执行程序或者库文件,使用QtCreator自带的CMake编译工具,个人理解这里的CMake是交叉编译工具,之前配置的QMake是Qt代码的编译工具
    依次选择“工具->选项->Kits->CMake”,点击Add按键添加新的编译工具,选择添加mingw32-make.exe,所在路径
    “<QtCreator安装路径> \Tools\mingw730_64\bin\mingw32-make.exe”
    在这里插入图片描述

    配置成功后在CMake页面会有显示
    在这里插入图片描述

    4、添加Arm64的编译环境(构建套件Kits)
    5、该部分用于配置编译Qt代码时的编译环境,基本是将前面的配置内容添加到编译环境里
    6、依次选择“工具->选项->Kits->构建套件(Kit)”,点击右侧Add按键进行配置,配置项目选择前面配置好的内容即可,主要配置内容见下图
    在这里插入图片描述

    配置完成后再次进到该“构建套件(Kit)”页面会有如下显示,其中linux_arm64为新增加的编译环境,前面两个是QtCreator安装时配置好的构建环境
    在这里插入图片描述

    第七步,创建Qt工程验证

    目前QtCreator编译linux arm64的环境已经已经配置完成,验证是否可以进行编译,
    Ctrl+N创建一个新的桌面应用程序,构建套件时选择linux_arm64即可
    在这里插入图片描述

    待程序创建好后,在工作窗口左侧“项目”界面修改Override make选项,点击Make选项右侧的详情即可列出override make栏,选择QtCreator安装路径下的\Tools\mingw730_64\bin\mingw32-make.exe。
    在这里插入图片描述

    然后ctrl+b进行工程编译即可,debug和profile模式设置类似,将上图中Release选项调整为debug或者profile即可,仍旧是设置override make栏。
    编译生成的执行程序或者库文件见上图中“构建目录”中列出的路径,注意只能编译,而不能运行。

    容易踩到的坑

    一.打不开make进程
    如果交叉编译项目时报错打不开make进程,
    将安装好的qt地址中的mingw中bin目录下的mingw32-make.exe复制一份改名为make.exe即可。因为windows上名字叫mingw32-make,linux上名字叫make,所以在windows上交叉编译时会找不到make,所以打不开进程。

    展开全文
  • 本文主要记录cereswindows下的编译以及安装配置 备注: 如果各位懒得编译请支持下 一、cmake安装 cmake下载网址:cmake官网 请根据自己的电脑配置选择安装文件,我是64位的电脑,安装文件如上; 具体的cmake...


    前言

    ceres 库是谷歌开发的基于C++的优化库,
    本文主要记录ceres库在windows下的编译以及安装配置
    备注: 如果各位懒得编译请支持下 (编译好的ceres库):https://download.csdn.net/download/qq_40957243/80429292

    一、cmake安装

    cmake下载网址:cmake官网
    安装文件
    请根据自己的电脑配置选择安装文件,我是64位的电脑,安装文件如上;

    具体的cmake安装可参考cmake安装教程

    二、ceres 依赖库的下载

    2.1.依赖库的下载

    • Eigen: https://gitlab.com/libeigen/eigen/-/releases
    • ceres: https://github.com/ceres-solver/ceres-solver
    • gflags: https://github.com/gflags/gflags
    • glog: https://github.com/google/glog
    • suitesparse: https://github.com/jlblancoc/suitesparse-metis-for-windows/releases
      下载完成–>解压–>

    在这里插入图片描述

    2.2.编译前准备工作

    2.2.1.创建vs工程的输出文件夹

    • 任选一个位置创建3Dparty_VS文件夹,以此在该文件夹下创建各个编译输出文件夹,如下:
      在这里插入图片描述

    2.2.2.创建编译库的输出文件夹

    同样创建编译库的输出文件,如下
    在这里插入图片描述

    2.3.编译Eigen库

    • 打开cmake,分别输入源文件路径输出路径,其次进行config配置,具体配置和输入如下:
      在这里插入图片描述
    • config 配置如下
      根据自己安装的vs 选择(本人安装的是vs2019)在这里插入图片描述
    • configure 配置如下
      BUILD_TESTING: 取消勾选;
      CMAKE_INSTALL_PREFIX: 选择库的输出路径(2.2.2 创建的文件夹)

    点击Generate: 生成VS工程,在/Eigen_VS_build/文件夹下
    在这里插入图片描述
    cmake基本流程:
    输入源文件路径-》输出VS工程路径-》Configure-》Generate;其他库的编译均按照此流程

    2.3.1.编译Eigen3

    • 利用vs2019 打开Eigen3.sln,分别以DEBUG和RELEASE 模式下生成INSTALL工程;生成后便可以看到Eigenlib下的库目录
      在这里插入图片描述

    2.4.编译gflags

    cmake编译gflags 类似Eigen,输入gflags路径-》输出VS工程路径-》Configure-》Generate;

    配置选项:

    1. CMAKE_INSTALL_PREFIX :输出路径(2.2.2中创建的文件夹)
      在这里插入图片描述
      生成库文件
      打开gflags.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

    2.5.编译glog

    cmake编译glog类似Eigen,输入gflags路径-》输出VS工程路径-》Configure-》Generate;

    配置选项
    CMAKE_INSTALL_PREFIX :输出路径
    在这里插入图片描述
    生成库文件
    打开glog.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

    2.6.编译SuiteSparse

    cmake编译suiteSparse类似Eigen,输入SuiteSparse 路径-》输出VS工程路径-》Configure-》Generate;

    2.6.1. 生成静态库文件

    先生成静态库文件,下一步生成动态库文件
    配置文件
    在这里插入图片描述
    生成库文件
    打开SuiteSparse.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

    2.6.2.生成动态库文件

    生成静态库文件后,重新配置cmake,生成动态库文件
    配置选项
    重新选中 SHARED
    在这里插入图片描述
    生成库文件
    打开SuiteSparse.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

    2.7.编译Ceres

    cmake编译ceers类似Eigen,输入ceres路径-》输出VS工程路径-》Configure-》Generate;
    配置文件
    编译ceres 需要增加(add entry)一些选项如下:
    配置过程中注意第三方库的依赖路径,注意配置选项每条都对上

    • BLAS_LIBRARIES(FILEPATH):E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/lib64/lapack_blas_windows/libblas.lib
    • LAPACK_LIBRARIES(FILEPATH)
      E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/lib64/lapack_blas_windows/liblapack.lib
    • GLOG(BOOL):选中打勾
    • SUITESPARSE_CHECK_INCLUDE_DIRS(PATH):E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/include
    • SUITESPARSE_CHECK_LIBRARY_DIRS(PATH):E:/3Dparty/Ceres/3DpartyLib/suitesparseLib/lib64
      在这里插入图片描述

    在这里插入图片描述
    生成库文件
    打开ceres.sln 分别以DEBUG和RELEASE 模式生成 ALL_BUILD和INSTALL

    三、测试ceres库文件

    3.1.获取所有头文件和库文件

    创建ceres/文件夹,分别在文件夹下创建include和library两个文件夹
    在2.2.2创建的*lib文件夹下,分别复制库文件,进行以下操作,3DpartyLib是生成的库文件路径

    • 复制E:\3Dparty\Ceres\3DpartyLib\CeresLib\include路径下的ceres文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include
    • 复制E:\3Dparty\Ceres\3DpartyLib\glogLib\include路径下的glog文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include
    • 复制E:\3Dparty\Ceres\3DpartyLib\gflagLib\include路径下的gflag文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include
    • 复制E:\3Dparty\Ceres\3DpartyLib\EigenLib\include\eigen3路径下Eigen文件夹至E:\3Dparty\Ceres\3DpartyLib\Ceres\Include\ceres

      依次分别复制头文件,静态库文件,动态库文件如下:
      在这里插入图片描述

    3.2.helloworld测试

    3.2.1.创建vs工程,添加ceres源代码中example文件夹下的helloworld.cc 文件;

    在这里插入图片描述

    3.2.2.添加包含目录和库目录:

    在这里插入图片描述

    3.2.3.引入静态库

    在这里插入图片描述

    3.2.4.编译踩坑

    • 问题1:POSIX name for this item
      在这里插入图片描述
      解决方案
      预处理器中增加宏定义:_CRT_NONSTDC_NO_DEPRECATE

    • 问题2:
      错误 C1189 #error: ERROR macro is defined. Define GLOG_NO_ABBREVIATED_SEVERITIES before including logging.h. See the document for detail. testHelloworld E:\3Dparty\Ceres\3DpartyLib\Ceres\Include\glog\log_severity.h 66
      解决方案
      预处理器中增加宏定义:GLOG_NO_ABBREVIATED_SEVERITIES

    • 问题3:错误 C2589 “(”:“::”右边的非法标记 testHelloworld
      在这里插入图片描述
      解决方案
      预处理器中增加宏定义:NOMINMAX
      参考解决方案

    终于编译成功了!!!

    但是、但是、但是

    • 执行过程中报错缺少dll库?
      解决方案
      缺什么库,就在ShareDLL文件夹下复制dll库至工程文件下;

    最终执行成功
    在这里插入图片描述
    文末附上编译好的ceres库和测试demo:https://download.csdn.net/download/qq_40957243/80429292


    # 总结 本文主要学习记录ceres库在windows下的编译过程,仅供学习参考

    参考文献:

    本着尊重原创的原则,在此附上参考文献,再次感谢两位作者;
    Ceres Solver 在Windows下安装配置笔记
    Ceres-Solver库使用(一)–windows下安装配置

    展开全文
  • windows10 CAD解析libredwg的调用

    千次阅读 2020-05-25 23:11:50
    书接上回,这里主要介绍libredwg的调用,具体安装教程参考:windows10 CAD解析libredwg安装记录。众所周知,我们已经生成静态libredwg.a。但是在windows中无法被vs调用,那用什么调用呢?这里我们采用QT来编写...
  • 【个人实验记录】Windows10系统下...主要参考了以下博客完成编译Windows10系统下TensorFlow 1.14.0 CPU版本的C++动态: https://blog.csdn.net/entir/article/details/105674488 参考该博客获得了安装的对应版本,Ms
  • Windows10系统安装PyTorch完整教程

    千次阅读 多人点赞 2021-02-23 18:38:26
    PyTorch是一个开源的Python机器学习,其前身是著名的机器学习Torch。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,它是一个面向Python语言的深度学习框架,不仅能够实现强大的GPU加速,...
  • 本文是windows10系统下安装MySQL的教程,主要以图片的形式展示安装教程,简单易懂,小白专属。 首先进入MySQL官网(https://www.mysql.com/)下载安装包 下载完成后,找到安装包所在位置,双击进入安装页面 ...
  • 经历了一次Windows10自动更新失败导致不得不重装系统后,我开始认真思考如何永久关闭windows10的自动更新功能,经过整理和亲身实践之后,我总结了这篇史上最全的强制永久关闭windows10自动更新的文章,主要从下面几...
  • 所以在设计之初,Tensorflow Lite没有打算在Windows端进行部署的,但是最近它提供了CMakeLists.txt编译脚本,因而可以将其编译为动态以在Windows端调用。 Tensorflow Lite主要特性 (1)通过解决以下 5 项约束条件...
  • 转载:...大家都知道在文件夹上右键,选择 属性 → 自定义 → 更改图标,这里可以选择很多图标,但用了很多年看腻了,Windows 10 中还自带有那么多,它们又在哪里呢? 属性 → 自定义...
  • Windows10性能优化设置

    万次阅读 多人点赞 2019-07-16 23:10:42
    Windows10性能优化设置 作者:雷神Club 链接:https://www.zhihu.com/question/33855201/answer/603615372 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 刚到手的新电脑,...
  • 树莓派笔记16: 体验Windows10 IoT

    万次阅读 2018-12-09 15:23:18
    之后再去下载页面就可下载到最新版本的系统镜像了,这里我下载的是Windows10_InsiderPreview_IoTCore_RPi3B_en-us_17661.iso。 下好iso后解压安装,包含内容主要是烧写工具和系统镜像,如下图所示,FFU文件夹下...
  • 使用Python在Windows 10上显示通知信息

    千次阅读 2022-02-07 19:40:49
    此功能的实现主要使用 python 第三方 win10toast https://github.com/jithurjacob/Windows-10-Toast-Notifications 安装**win10toast** pip install win10toast 使用示例 from win10toast import ToastNotifier ...
  • Windows10安装Pytorch的完整安装教程

    千次阅读 多人点赞 2021-02-25 12:21:11
    本文主要内容:1. 概述2. 安装2.1 安装cuda2.2 安装cudnn2.3 安装Pytoch2.4 验证 1. 概述 PyTorch是一个开源的Python机器学习,其前身是著名的机器学习Torch。2017年1月,由Facebook人工智能研究院(FAIR)基于...
  • Ne10编译使用

    千次阅读 2017-09-18 14:08:38
    Ne10是一个单独的开源,可以把它直接嵌入到工程里面去(目前支持linux,android,ios),直接调用里面的函数。Ne10已实现一些接口,可分为4个模块:dsp、math、imgproc、physics。比如dsp中目前就已封装了fft,fir...
  • 虽然微软提供了两种看似相似的产品,Microsoft 10和Microsoft Server,但这两种产品提供了不同的功能。 一个操作系统是为个人电脑和笔记本电脑的日常使用而设计的,另一个则适合通过服务器管理多个设备、服务和文件...
  • 渗透神器----Windows10 渗透工具包

    千次阅读 2022-04-20 15:29:05
    这几天一直有工作,所以就没有来的及去更新靶场还有CTF试题,接下来给大家更新一个优秀的工具:2022年最新Windows10 渗透工具包镜像 系统简介 基于Win10 Workstation 21H2 x64 MSDN原版镜像制作; 完整安装WSL Kali...
  • 据Axure中文网称该问题主要发生在windows10系统,并猜测是系统权限导致的。对于使用Auxrer的同学们来说,具体原因不重要,重要的是该怎么解决。 解决方法很简单, 重新载入一下默认的元件。默认元件可以在axure...
  • VTK-Windows源码编译生成VTK

    千次阅读 2022-04-07 22:40:36
    VTK主要用于三维计算机图形学、图像处理和可视化。 安装步骤如下: 0. 前置条件:我本地已经安装了VS 2019和CMAKE 3.20.5 下载源码:https://vtk.org/download/#latest,这里我下的是8.2.0版本 解压后打开CMAKE ...
  • 提供解决方案-Windows下配置OpenSSL(傻瓜式教程)
  • 前言大家好,我是昭华凋,本篇文章想和大家探讨一下怎么零成本搭建一个私人影视,怎么轻松惬意欣赏影视作品。说到搭建影视估计大家第一个想法就是群晖,Video Station,NAS等等。不过呢这篇文章讨论的是零成本...
  • Mediapipe - Windows10 编译Mediapipe C++版本保姆级教程

    千次阅读 热门讨论 2021-08-09 20:15:30
    文章目录1 Windows10编译Mediapipe C++版本2 编译步骤2.1 MSYS2环境配置2.1.1 下载安装2.1.2 配置系统环境变量2.1.3 升级msys2包数据库2.1.4 升级msys2基础数据库2.1.5 下载安装必要的包:unzip2.2 Python环境配置...
  • Windows10系统的Python版本查询

    千次阅读 2022-01-04 11:38:02
    Windows10系统的Python版本查询前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人...
  • windows10安装达梦数据库

    千次阅读 2021-02-02 15:36:13
    说明:以下内容基于Windows10和DM8。这里安装是基于开发机环境安装,所以选择典型安装,如果是数据库服务器请选择服务器安装。 1.下载数据库 打开网址,注册登录账号 ...FId=t14:11:14 ...
  • 10行代码带你入门Windows编程

    千次阅读 多人点赞 2022-04-22 12:21:08
    手把手带你入门Windows
  • windows10使用docker搭建开发环境

    千次阅读 2021-04-29 15:26:13
    像我这样是没有开启虚拟化的,开启虚拟化的过程每种机器可能有一些差别,但是主要流程如下 开机后在控制面板\所有控制面板项\程序和功能点击启动或关闭windows功能 把Hyper-V的功能都勾选上,这样本地环境已基本...
  • 换了Windows10和Windows2016,心情格外6

    千次阅读 2018-09-06 14:56:29
    一直以为是Notes和Domino 10 Beta2程序,后来又感谢LEO传了一份Beta,并提醒我要Windows 10以上的操作系统,后来我就搭建了相应的客户机和服务器环境,而后真的就安装和运行成功了! 一、Domino 10 Beta...
  • Windows系统使用zlog纯C日志

    千次阅读 2020-02-26 21:44:18
    zlog日志 概述 zlog是一个可靠,高性能,线程安全,灵活,清晰模型的纯C日志记录。 实际上,在C语言世界中,没有像Java中的logback或c ++中的log4cxx这样的应用程序的良好日志记录。 使用printf可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 249,019
精华内容 99,607
热门标签
关键字:

windows10主要的库