自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (2)
  • 收藏
  • 关注

转载 LINUX下动态库及版本号控制

针对同一动态组件的不同版本链接和加载。一、概念 DLL HELL字面意思是DLL"灾难",是由于com组件(动态库)升级引起的程序不能运行的情况。 原因 有三种可能的原因导致了DLL Hell的发生: 一是由使用旧版本的DLL替代原来一个新版本的DLL而引起的。这个原因最普遍,是Windows 9X用户通常遇到的DLL错误之一。 二是由新版DLL中的函数无意发生改变而引起。...

2020-06-29 20:02:06 776

转载 Lua与C

【前言】对于Lua的基础总结总算告一段落了,从这篇博文开始,我们才真正的进入Lua的世界,一个无聊而又有趣的世界。来吧。Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。C和Lua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这种形式中的C代码称为“应用程序代码”;第二种情况是,Lua拥有控制权,C语言是一个库,这个时候C代码就是“库代码”。“应用程序代码”和“库代码”都使用同样的API来与Lua通信,这些API就称为C API。C A

2020-06-25 17:02:09 273

转载 Lua的线程和状态

【那不是真的多线程】Lua不支持真正的多线程,这句话我在《Lua中的协同程序》这篇文章中就已经说了。根据我的编程经验,在开发过程中,如果可以避免使用线程,那就坚决不用线程,如果实在没有更好的办法,那就只能退而用之。为什么?首先,多个线程之间的通信比较麻烦,同时,线程之间共享内存,对于共享资源的访问,使用都是一个不好控制的问题;其次,线程之间来回切换,也会导致一些不可预估的问题,对性能也是一种损耗。Lua不支持真正的多线程,而是一种协作式的多线程,彼此之间协作完成,并不是抢占完成任务,由于这种协作式的线程

2020-06-25 16:35:01 2768

转载 【C++】array和vector,数组三者区别和联系

共同点(1.)都和数组相似,都可以使用标准数组的表示方法来访问每个元素(array和vector都对下标运算符[ ]进行了重载)(2.)三者的存储都是连续的,可以进行随机访问不同点(0.)数组是不安全的,array和vector是比较安全的(有效的避免越界等问题)(1.)array对象和数组存储在相同的内存区域(栈)中,vector对象存储在自由存储区(堆)(2.)array可以将一个对象赋值给另一个array对象,但是数组不行(3.)vector属于变长的容器,即可以根据数据的插入和删除重新

2020-06-12 10:16:40 1189

转载 Matlab航迹规划仿真——A*算法

文章目录1. 初始化参数 2. 构建地图 3. A*算法搜索路径 4. 路径优化 5. 效果图 6. 下载链接基本的A*算法在这里不再讲述,想要了解的朋友可以自己在CSDN搜索,在此主要解释下代码。1. 初始化参数主要参数:地图大小 起始点和目标点坐标clc clear all m = 30;n = 30; Spoint = [3 3]; %起始点坐标 Epoint = [29 22]; %目标点坐标 2. 构建地图-inf表示不可到达...

2020-06-10 13:56:51 2282 2

转载 A星算法详解(个人认为最详细,最通俗易懂的一个版本)

A* 寻路算法原文地址:http://www.gamedev.net/reference/articles/article2003.asp概述虽然掌握了A*算法的人认为它容易,但是对于初学者来说,A*算法还是很复杂的。搜索区域(The Search Area)我们假设某人要从A点移动到B点,但是这两点之间被一堵墙隔开。如图1,绿色是A,红色是B,中间蓝色是墙。图1你应该注意到了,我们把要搜寻的区域划分成了正方形的格子。这是寻路的第一步,简化搜索...

2020-06-10 13:26:14 1012

转载 AGV导航中的最短路径算法比较

在AGV导航中,路径选择是一个重要课题,如果最优路径使用最短路径算法,那可以使用的算法有很多,本文比较了当前流行的最短路径算法,主要有Dijkstra 算法,Floyd算法,A-star算法,Bellman-Ford 算法,SPFA算法等下表是对各种算法的一个比较:算法适用场景实现难易度时间/空间复杂度负权边问题Floyd算法多源最短路径,计算任意两点之间的最短距离;稠密图效果最佳;时间复杂度比较高,不适合计算大量数据;简单时间复杂度:O(n^3)空间复杂

2020-06-10 13:23:06 2142

转载 常用资源整理

Deep Learning(深度学习):ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错。deeplearning.net主页,里面包含的信息量非常多,有software, reading list, research lab, dataset, demo等,强烈

2020-06-09 15:02:00 648

转载 linux 下 动态链接库 so 之间的符号冲突

在 linux 下编写动态链接库程序,需要注意dll 之间的符号冲突。当我们链接库需要提供给很多方集成使用,需要面对复杂的集成环境,其中一个大问题就是与第三方集成环境的符号冲突。这些冲突有些不是通过严格控制名字空间解决的,比如当我们使用了一些开源库,我们不清楚第三方集成环境有没有这些库,即使有是不是版本匹配,我们也不想对第三方集成环境提太多要求,这会增加集成成本。在这种情况下,我们会将这些开源库静态链接到我们的动态链接库中,仅提供一个 so 文件。但是这样做不足以避免符号冲突。linux 下的动.

2020-06-05 16:15:17 2676

转载 C/C++——linux默认动态库连接、动态库与静态库混合连接-Wl

linux默认对库的连接是使用动态库在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。使用方式为:gcc test.cpp -L. -ltestlib1如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。如果要指定为连接静态库则使用:gcc test.cpp -L. -static -ltestlib1使用静态库进行连接。对动态库与静态库混合连接 -Wl当对

2020-06-05 15:03:54 640

转载 LINUX静态库与动态库符号冲突问题分析与解决

1. 问题重现模型为了重现问题并去掉无关干扰细节,我们将构建一个最简单的可执行模块和依赖模块的关系链,程序依赖模型如下:1.1 解释(1)有一个名为RTSP的第三方库提供了公共接口RTSP_OPEN,RTSP可以编译为静态库libRTSP_STATIC.a也可以编译为动态库libRTSP_SHARED.so。(2)基于RTSP库封装了一个名为STREAM的库,该库以动态库libSTREAM.so的形式提供使用。STREAM库提供了1个名为STREAM_OPEN的接口,该接口在内部使用RTSP库提

2020-06-05 14:59:55 2237

转载 Linux 动态库同名函数处理原则

万事皆有缘由,还是先从我遇到的这个问题说起~~~问:有一个主执行程序main,其中实现了函数foo(),同时调用动态库liba.so中的函数bar(),而动态库liba.so中也实现了foo()函数,那么在执行的时候如果在bar()中调用foo()会调用到哪一个?在main()中调用呢? 直接给答案:如果是在Linux上,liba.so中的foo()函数是一个导出的(extern)”可见”函数,那么调用会落入主程序里,这对于liba.so的作者来说实在是个灾难,自己辛辛苦苦的工作竟然被自己人视而不见,偏偏误

2020-06-05 14:54:57 2162

转载 Linux下.ko, .o, .so, .a, .la文件

Linux下.ko, .o, .so, .a, .la文件 分类:Linux 系列2011-12-12 23:302669人阅读评论(0)收藏举报linuxgccmakefilelibrarywindowspathLinux下文件的类型是不依赖于其后缀名的,但一般来讲:.ko 是Linux 2.6内核使用的动态连接文件的后缀名,也就是模块文件,用来在Linux系统启动时加载内核模块.o 是目标文件,相当于windows中的.obj文件...

2020-06-05 14:44:32 497

转载 在主程序及动态链接库里的全局变

曾经在一次写程序的时候,全局使用一个日志对象,所有的日志信息都由此日志对象写入文件。但是发现在动态链接库里,无法存取到该全局对象,后经查找资料。发现,动态链接库是否能存取主程序的全局变量,主程序是否能存取动态链接库里定义的全局变量都是可以通过链接指令改变此行为。主程序存取动态链接库里的全局变量例如动态库里定义全局变量int i, 在主程序里申明extern int i。 则,主程序存取的就是动态库里定义的i。在所有的UNIX平台上这是默认的行为(注意:实际定义i的 模块的点o文件,必须同时链接到动态库和

2020-06-05 14:33:18 318

转载 技巧:多共享动态库中同名对象重复析构问题的解决方法

共享库与静态成员吴 光远 和 孟 先涛2010 年 10 月 21 日发布Linux 支持的共享程序库(lib*.so)技术不仅能够有效利用系统资源,而且还对程序设计带来了很大的便利性、通用性等,因此被各种级别的应用系统广泛采用。 动态链接的共享库是在加载应用程序时被加载的,而且它与应用程序是在运行时绑定的:通过动态链接器,将动态共享库映射进应用程序的可执行内存中(动态链接);在启动应用程序时,动态装载器将所需的共享目标库映射到应用程序的内存(动态装载)。在通常情况下,共享库都是通过使用附加选

2020-06-03 18:08:36 1324

转载 linux so 动态库中全局变量 被覆盖问题

问题描述回归正题,前段时间项目开发中,实现了一个动态库,封装了一些方法。然后基于这个动态库,实现了一个应用程序。应用程序中含有全局变量A,动态库中也含有全局变量A,当我调用动态库中函数后,发现应用程序的A发生了变化!!!O,My God!对于我这种还没在Linux下做过开发的人来说,一头雾水。。。。。。 于是我尝试着,将A中的变量名称改为B,这样问题也就没有了~~~原因应用程序进行链接的时候,动态库中全局变量定义,将会被应用程序中同名的全局变量所覆盖。这样也就造成了,在动态库中修改A..

2020-06-03 11:06:01 1117

转载 Linux指定动态库搜索路径五种方法及优先级

众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及该动态库的其它资源了。在Linux中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定。方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径。可以通过编辑配置文件/etc/ld.

2020-06-03 09:15:28 2547

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除