lib文件

linux动态链接库的使用

江枫思渺然 提交于 2020-01-29 10:24:33
linux动态链接库的使用 文件结构 目录结构 pwd /home/virgil/Desktop/shared_object tree . ├── lib │ └── add.c └── main └── main.c add.c int add(int a,int b) { return a+b; } main.c #include <stdio.h> //声明要调用库中的函数 int add(int a,int b); int main() { printf("%d\n",add(1,2)); return 0; } 编译动态库 进入 lib 目录 gcc add.c -fPIC -shared -o libadd.so 编译源代码 进入 main 目录 gcc main.c -o a.out -ladd 这时编译会报错,提示找不到动态链接库add 那么可以手动通过 -L 参数给出add动态链接库的路径 gcc main.c -o a.out -l add -L ../lib/ 如果每次都需要指明路径未免太麻烦了,实际上gcc默认会有一个默认搜索路径,它会首先在该路径中进行搜索,该路径通常是 /lib 或者 /usr/lib 目录. 那么我就把 libadd.so 拷贝到该目录下即可 sudo cp ../lib/libadd.so /usr/lib

Java 设计模式(一)反射

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-29 07:39:48
1. 概述 反射:将类的各个组成部分封装为其他对象,可以在程序运行过程中操作这些对象,还可以解耦,提高程序的可扩展性。Java反射技术应用广泛,它能配置类的全限定名、方法和参数,完成对象的初始化,甚至反射某些方法。 2.获取Class对象的方式 *  Class.forName(“全限定名”) ;将字节码文件加载进内存,返回Class对象。多用于配置文件,将类名定义在配置文件中。读取文件,加载类 *  类名.class :通过类名的属性class获取。多用于参数传递 *  对象.getClass() :getClass()在Object类中定义着的。多用于对象获取字节码格式 代码演示: package com . wanfei . domain ; /** * 创建一个Student类: */ public class Student { private String name ; private int age ; public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public int getAge ( ) { return age ; } public void setAge ( int age ) { this .

引入官方css文档和自定义图标库报错

[亡魂溺海] 提交于 2020-01-29 01:59:11
1.报错如下: 11:02:35.181 Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): 11:02:35.181 ModuleNotFoundError: Module not found: Error: Can't resolve './static/uni.ttf' in 'D:\sport\sport' 11:02:35.186 at factory.create (E:\HBuilderX\plugins\uniapp-cli\node_modules\webpack\lib\Compilation.js:821:10) 11:02:35.186 at factory (E:\HBuilderX\plugins\uniapp-cli\node_modules\webpack\lib\NormalModuleFactory.js:397:22) 11:02:35.191 at resolver (E:\HBuilderX\plugins\uniapp-cli\node_modules\webpack\lib\NormalModuleFactory.js:130:21) 11:02:35.192 at asyncLib.parallel (E:

solr4.3+tomcat入门部署(转自http://qindongliang1922.iteye.com/blog/1893254)

心已入冬 提交于 2020-01-28 11:54:57
solr4.3+tomcat入门部署 博客分类: Solr solr4.3 入门部署 solr4.3的入门配置 目前阿帕奇官方仅推荐2个比较稳定的版本一个是4.3的版本,一个3.6的版本 3.6的版本没有用过,所以在此无涉及,下面就来说说solr4.3的入门配置 solr4.3与solr4.2最大的区别就在与solr4.3的日志模块与核心模块分离出来了 所以在进行安装配置时需要另行配置,其他的步骤基本与solr4.2的相同 准备环境tomcat6(笔者的版本)+solr4.3 1.首先,需要从官网上下载solr4.3的zip的压缩包,并解压出来 2.假如tomcat放在E盘下面,那么第一步需要进行的操作就是要把 E:solr4.3的jar包\solr-4.3.0\dist下面的solr-4.3.0.war,拷贝到 tomcat中webapps下面然后启动tomcat,war包将自动解压出来, 3. 然后就是拷贝从官网下载下载的例子包中的E:\solr\solr4.3的jar包\solr-4.3.0\example\solr 下面的collection1文件夹与solr.xml(注意solr.xml只需要一份即可,这个在配置多份索引时 无须多拷贝)放在E:\tomcat-solr4.3\webapps\solr\下面 4.配置E:\tomcat-solr4.3\webapps

自定义镜像上传阿里云

流过昼夜 提交于 2020-01-28 08:05:25
目标 1、alpine制作jdk镜像 2、Alpine制作jre镜像(瘦身) 3、Docker镜像上传至阿里云 alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗。 2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息 3.Alpine Docker镜像继承了Alpine Linux发行版的这些优势,相比于其他Linux Docker镜像,它的体积非常小 对比常用的、没有压缩过的基础镜像(查看当前的:latest标签): Alpine - 4.8MB centos - 124.8 MB Debian - 125.1MB Centos - 196MB 4.建议使用Alpine Linux 3.10.0版本,这也是 v3.10 稳定系列的首个版本 alpine:3.10 基于alpine制作JDK8镜像 #1.下载镜像 docker pull alpine:latest #2.创建并编辑dockerfile touch Dockerfile vi

SSD的安装与测试, invalid pointer double free解决方案

偶尔善良 提交于 2020-01-28 03:21:36
I suggest you use atlas not openblas , and use cuda 8.0 . Now the best solution is to remake openCV with qt5 I think. What’s more, Here is something I suggest: when making openCV, I strongly suggest add -D WITH_GTK=NO , without this my computer will automatically build with gtk if it can find gtk packs on computer. 1. 安装cuda和caffe, 暂略 2. 安装相应库依赖 sudo apt-get update sudo apt-get install --no-install-recommends libboost-all-dev sudo apt-get install libgflags-dev sudo apt-get install libgoogle-glog-dev sudo apt-get install libblas-dev sudo apt-get install libhdf5-serial-dev sudo apt-get instal

solr4.3+tomcat入门部署

前提是你 提交于 2020-01-28 00:06:47
solr4.3的入门配置 目前阿帕奇官方仅推荐2个比较稳定的版本一个是4.3的版本,一个3.6的版本 3.6的版本没有用过,所以在此无涉及,下面就来说说solr4.3的入门配置 solr4.3与solr4.2最大的区别就在与solr4.3的日志模块与核心模块分离出来了 所以在进行安装配置时需要另行配置,其他的步骤基本与solr4.2的相同 准备环境tomcat6(笔者的版本)+solr4.3 1.首先,需要从官网上下载solr4.3的zip的压缩包,并解压出来 2.假如tomcat放在E盘下面,那么第一步需要进行的操作就是要把 E:solr4.3的jar包\solr-4.3.0\dist下面的solr-4.3.0.war,拷贝到 tomcat中webapps下面然后启动tomcat,war包将自动解压出来, 3. 然后就是拷贝从官网下载下载的例子包中的E:\solr\solr4.3的jar包\solr-4.3.0\example\solr 下面的collection1文件夹与solr.xml(注意solr.xml只需要一份即可,这个在配置多份索引时 无须多拷贝)放在E:\tomcat-solr4.3\webapps\solr\下面 4.配置E:\tomcat-solr4.3\webapps\solr\WEB-INF下面的web.xml 将此节点注释取消掉即可 Java代码 <env

ES6模块之export和import详解

*爱你&永不变心* 提交于 2020-01-27 23:00:36
ES6模块之export和import详解: https://blog.csdn.net/qq_28506819/article/details/75733601 ES6中的模块即使一个包含JS代码的文件,在这个模块中所有的变量都是对其他模块不可见的,除非我们导出它。ES6的模块系统大致分为导出(export)和导入(import)两个模块。 1、模块导出(export) 你可以 导出 所有的最外层 函数 、 类 以及 var 、 let 或 const 声明的变量。 ES6模块只支持静态导入和导出,你只可以在模块的最外层作用域使用 import 和 export ,不可在条件语句中使用,也不能在函数作用域中使用 import 。所有导出的标识符一定要在源代码中明确地导出它们的名称,你不能通过编写代码遍历一个数组然后用数据驱动的方式导出一堆名称。如下导出是错误的。 function squre( ) {}; if( true) { export {squre}; } ES6的导出分为名字导出和默认导出 1、名字导出(name export) 名字导出可以在模块中导出多个声明。 //------ lib.js ------ export const sqrt = Math.sqrt; export function square( x) { return x * x; }

python 安装 pymssql 库时报错

老子叫甜甜 提交于 2020-01-27 08:05:49
python 安装 pymssql 库时报错 安装第三方库 pip install pymssql Traceback (most recent call last): File “c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip_vendor\urllib3\response.py”, line 425, in _error_catcher yield File “c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip_vendor\urllib3\response.py”, line 507, in read data = self._fp.read(amt) if not fp_closed else b"" File “c:\users\XXX\appdata\local\programs\python\python37\lib\site-packages\pip_vendor\cachecontrol\filewrapper.py”, line 62, in read data = self.__fp.read(amt) File “c:\users\XXX\appdata\local

linux命令g---gcc

故事扮演 提交于 2020-01-26 19:07:51
1、-l:用来指定程序要链接的库,库名是m,他的库文件名是libm.so,把库文件名的头lib和尾.so去掉就是库名 当我们自已要用到一个第三方提供的库名字libtest.so,只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件) 2、-L:放在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接了,但如果库文件没放在这三个目录里,而是放在其他目录里,这时我们只用-l参数的话,链接还是会出错,出错信息大概是:“/usr/bin/ld: cannot find -lxxx”,也就是链接程序ld在那3个目录里找不到libxxx.so,这时编译时用-L/usr/X11R6/lib -lX11参数,-L参数跟着的是库文件所在的目录名。比如我们把libtest.so放在/aaa/bbb/ccc目录下,那链接参数就是-L/aaa/bbb/ccc -ltest 另外,大部分libxxxx.so只是一个链接,以RH9为例,比如libm.so它链接到/lib/libm.so.x,/lib/libm.so.6又链接到/lib/libm-2.3.2.so,如果没有这样的链接,还是会出错,因为ld只会找libxxxx.so