lib

区分.lib .dll .obj .a .so .o

一世执手 提交于 2020-02-14 05:30:03
DLL: 动态链接库 (DLL) 是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。 obj:是CPP对应的二进制代码格式,是未经重定位的! lib:是若干个obj的集合,本质与obj相同! LIB 创建标准库、导入库和导出文件,在生成 32 位程序时可将它们与 LINK 一起使用。LIB 从命令提示运行。 可在下列几种模式下使用 LIB: 生成或修改 COFF 库 将成员对象提取到文件中 创建导出文件和导入库 这些模式是互斥的;每次只能以一种模式使用 LIB。 dll:是可实际运行的二进制代码,有定位代码的! h:是头文件,也可算是源代码,因为当CPP中用#include时,会把包含的文件的内容在CPP中 扩展 开! 动态链接与静态链接的不同之处在于它允许可执行模块(.dll 文件或 .exe 文件)仅包含在运行时定位 DLL 函数的可执行代码所需的信息。在静态链接中,链接器从静态链接库获取所有被引用的函数,并将库同代码一起放到可执行文件中。 使用动态链接代替静态链接有若干优点。DLL 节省内存,减少交换操作,节省磁盘空间,更易于升级

linux cpu占有率居高不下 调试

独自空忆成欢 提交于 2020-02-14 00:24:02
今天调试程序,使用top命令后,发现程序的cpu占有率很高,一直在99,这很可怕,所以来调试。 使用top命令,得如下结果 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1997 root 20 0 358m 71m 3208 S 99.1 7.2 81:53.50 test 1 root 20 0 24332 2044 1176 S 0.0 0.2 0:01.36 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:46.51 ksoftirqd/0 4 root 20 0 0 0 0 S 0.0 0.0 0:38.53 kworker/0:0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 可知test的PID为1997 然后具体查看test里线程的cpu使用情况 使用 top -H -p 1997 命令 root@slk:~# top -H -p 1997 top - 17:19:47 up 15 days, 34 min, 4 users, load average: 1.02, 1.06, 1.06 Tasks: 8 total, 1 running, 7

利用OpenCV的人脸检测给头像带上圣诞帽

こ雲淡風輕ζ 提交于 2020-02-13 22:50:48
我们来看下效果 原图: 效果: 原理其实很简单: 采用一张圣诞帽的png图像作为素材, 利用png图像背景是透明的,贴在背景图片上就是戴帽子的效果了。 人脸检测的目的主要是为了确定贴帽子的位置,类似ps中自由变换的功能,检测到人脸中间的位置,resize圣诞帽子和人脸大小匹配,确定位置,贴上去,ok! 代码:非常简洁,根据参考博客给出的代码,由OpenCV自带的人脸检测代码经过简单修改即可。 // getheader.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> #include <stdio.h> using namespace std; using namespace cv; #pragma comment(lib,"opencv_core2410d.lib") #pragma comment(lib,"opencv_highgui2410d.lib") #pragma comment(lib,"opencv_objdetect2410d.lib")

android编译错误--/usr/bin/ld: cannot find -lz

牧云@^-^@ 提交于 2020-02-11 01:12:59
编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when searching for -lz错误============================================ PLATFORM_VERSION_CODENAME=AOSP PLATFORM_VERSION=AOSP TARGET_PRODUCT=generic TARGET_BUILD_VARIANT=eng TARGET_SIMULATOR= TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv5te HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=OPENMASTER ============================================ host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt) /usr/bin/ld: skipping

Linux下安装tomcat并指定jdk

老子叫甜甜 提交于 2020-02-10 18:09:20
1、tomcat下载安装 下载 tomcat.tar.gz, 下载地址 (非官方网址,亲测可用), 解压 tar -zxvf 压缩包名称 -C 安装目录 2、jdk下载安装 方法一: 查询版本: yum search java | grep -i --color JDK 选择对应版本安装: yum install java-1.8.0-openjdk-devel.x86_64 配置环境变量(此种方式无需再配置tomcat): vi /etc/profile export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 保存关闭后,执行,让配置生效: source /etc/profile 输入命令检测: java -version 方法二: 安装: 直接在官网下载绿色版压缩包,解压到安装目录下即可。 配置环境变量: 同上 3、tomcat指定JDK 修改启动脚本: tomcat8/bin/startup.sh 在tomcat启动前,设置运行变量:

usr/bin/ld: cannot find 错误解决方法

馋奶兔 提交于 2020-02-10 17:51:37
参考:http://blog.siyebocai.cn/20100324_5p424qs7.html 通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中。 解决方式: 1。确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1, 那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so. 2。检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。 3。ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的 库文件导入ld.so.cache. 4。测试,gcc -l123 --verbose. 来源: https://www.cnblogs.com/mfryf/archive/2013/03/17/2964172.html

VS2015+PCL1.81+Qt5.11.2配置VTK8.00完整方案

五迷三道 提交于 2020-02-10 17:47:53
第一次写博文,条理可能不太清楚。最近想要用Qt5制作一个GUI界面,用来显示pcl点云数据。在配置VTK的过程中碰到了许多坑,在此与大家分享,希望对大家有所帮助。 VS2015+PCL1.81+Qt5.11.2配置VTK8.00完整方案 1.前期介绍 2.CMake安装 3.CMake编译vtk 4.VS编译CMake编译后的vtk 5.VS配合QVTKWidget显示点云数据 1.前期介绍 软件信息: Visual Studio 2015_64 pcl 1.8.1 Qt 5.11.2 VTK 8.00 CMake 3.10 四者的关系: VS不用多说,集成开发环境;pcl为点云处理的库,提供了对点云处理的函数;Qt为跨品台的GUI制作工具;Qt中没有很好显示点云的控件,需要用CMake将vtk编译为QVTKWidget控件,以供Qt调用。 接下来的任务: 在这里我假设读者现在VS中已经配置好了pcl,Qt,接下来着重介绍vtk的编译安装过程。 安装vtk有两种方式,一是用CMake自己编译vtk,也就是我接下来要讲的方法,比较麻烦;另一种是下载别人编译好的vtk(一定要注意版本,版本差别太大可能用不了),使用我编译好的vtk直接替换掉PCL1.8.1\3rdParty\VTK就行了,这种方法没有试过,不保证成功。 这里附下参考博文和我编译好的vtk网盘连接: https:/

/usr/bin/ld: cannot find -lxxx 问题

狂风中的少年 提交于 2020-02-10 15:55:51
linux下编译应用程序常常会出现如下错误: /usr/bin/ld: cannot find -lxxx 意思是编译过程找不到对应库文件。其中,-lxxx表示链接库文件 libxxx.so。 注:有时候,由于库文件是编译过程临时生成的,如果前面出错也会导致出现这种情况,下面针对的是由于本机系统环境缺失而引起的。。 一般出现这种错误有以下几种原因: 1.系统缺乏对应的库文件; 2.版本不对应; 3.库文件的链接错误; 4.库文件路径设置问题; 对应第一第二种情况,可以通过下载安装lib来解决,ubuntu大多数可以直接通过apt-get来安装: apt-get install libxxx-dev 一般遇到这种问题笔者第一时间也是会去检查系统是否已安装该lib或者是否已选择正确版本(只是习惯问题),如果还是不能解决问题,那么,引起错误的原因不是链接错误就是库文件路径问题了。 通过find或者locate指令定位到链接文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。 如果是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。

解决/usr/bin/ld: cannot find -lxxx

我只是一个虾纸丫 提交于 2020-02-10 15:55:12
解决/usr/bin/ld: cannot find -lxxx 已有 7102 次阅读 2012-2-26 09:23 | 个人分类: LINUX环境设置 | 系统分类: 科研笔记 | 关键词:ld cannot 在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息: /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source code 而有不同的结果出来如: /usr/bin/ld: cannot find -lc /usr/bin/ld: cannot find -lltdl /usr/bin/ld: cannot find -lXtst 其中xxx即表示函式库文件名称,如上例的:libc.so、libltdl.so、libXtst.so。 其命名规则是:lib+库名(即xxx)+.so。 会发生这样的原因有以下三种情形: 1 系统没有安装相对应的lib 2 相对应的lib版本不对 3 lib(.so档)的symbolic link 不正确,没有连结到正确的函式库文件(.so) 解决方法: (1)先判断在/usr/lib 下的相对应的函式库文件(.so) 的symbolic link 是否正确 若不正确改成正确的连结目标即可解决问题。 (2)若不是symbolic link 的问题引起

window10下安装cuda和cudnn

为君一笑 提交于 2020-02-10 15:52:35
CUDA下载 CUDA的安装包可直接从 官网 下载,window下的安装包为exe文件,下载后直接安装。安装的时候建议选择 自定义 而不是“精简”(从下面的英文解释可以看出,其实这里的精简写成完整应该更贴切,他会安装所有组件并覆盖现有驱动)。 cuDNN下载 安装完成之后,还需要下载 cuDNN ,这里需要登录并填写问卷才能下载,选择与CUDA相应的版本下载。下载完成后解压,把解压后文件夹中lib,bin,include三个文件夹放入cuda的安装文件夹目录下。我的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2 环境变量设置 接下来设置环境变量: 计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和CUDA_PATH_V8_0两个环境变量,接下来,还要在系统中添加以下几个环境变量,具体位置根据自己的安装位置填写: CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2 CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 CUDA_BIN_PATH = %CUDA_PATH%\bin CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64