JNA(Java Native Access):是建立在JNI之上的Java开源框架,SUN主导开发,用来调用C、C++代码,尤其是底层的库文件(windows中叫dll文件,linux下是.so文件)。 先注意几个问题: 1.下载jna.jar包,jna-platform.jar 可以不要,但是有 ...
分类:
编程语言 时间:
2018-09-09 19:45:02
阅读次数:
234
gcc工作流程和编译原理 1. 预处理 gcc -E 2. 编译 gcc -S 3. 汇编 gcc -c 4. 链接 没参数 gcc的参数 -I 指定头文件的路径 -o 指定生成的文件名 -D 在编译的时候给代码定义宏 -O 优化程序 后面跟 0 1 2 3 这是优化等级 -Wall 在程序编译的时 ...
分类:
其他好文 时间:
2018-09-08 11:48:18
阅读次数:
193
库文件是已经编译好的二进制代码。这个二进制代码可以是动态的,如 .so 也可以是静态的,如 .a ,如果是动态的,则你最后生成的程序文件在运行时,需要这个动态库的支持,如果是静态的,则你最后生成的客执行程序文件运行时可以脱离这个库文件而独立运行。 ...
分类:
其他好文 时间:
2018-09-07 19:17:10
阅读次数:
194
手把手教你学CMake-----这一节我们将自己动手写一个动态库和一个静态库,并安装头文件和共享库以供其他程序使用 。下一节,将编写程序应用这一节安装的头文件和库文件。 ...
分类:
其他好文 时间:
2018-09-06 16:25:11
阅读次数:
1531
一、静态库 静态库编译后的执行程序是不需要其他函数库支持的 原因:第三方库的代码已经拷贝到你要执行的程序之中,所以这时候就不需要再依赖第三方库,执行代码具有独立性 二、动态库 1.理解 : 你的执行程序用到此函数库时才会去调用它 原因: 第三方库和你执行的代码一起加载到系统中,他们是并行存在的,当程 ...
分类:
其他好文 时间:
2018-09-05 20:00:13
阅读次数:
188
静态库(.a)与动态库(.so)的简明介绍 gcc有很多关于静态库,动态库的选项如 ,` L fPIC shared Wl, soname`,看着很复杂容易混淆,其实静态库和动态库都是应需而生,只要有了一个线索都很容易理解。 普通编译 假设有三个文件(后面均使用这个例子): 我们要想运行这个程序需要 ...
分类:
其他好文 时间:
2018-09-05 14:00:53
阅读次数:
180
最近要逆向一个pyd文件,无意中要用到用boost库生成的pyd文件,这其中的环境配置过程很漫长,特意将配置或者说安装使用的过程记录一下。python中使用C++生成的动态库方法我知道的现在是两种,(1)通过boost库生成dll,然后改名成后缀名pyd给python使用,(2)通过python的c ...
分类:
编程语言 时间:
2018-09-02 15:28:58
阅读次数:
296
i) 我学习Qt的第一本书籍是Mark Summerfield等编写的《C++ GUI Qt 4编程(第2版)》,但当时使用的是Qt 5.8开发环境。因此在Qt 5及其以上版本的开发环境实践该书代码时需要在.pro文件中写入:QT += widgets。 ii) quote关键字用于引用目录, 等同 ...
分类:
其他好文 时间:
2018-09-01 00:49:48
阅读次数:
228
Qt为了使其动态库最大程度上实现二进制兼容,引入了d指针的概念。那么为什么d指针能实现二进制兼容呢?为了回答这个问题,首先弄清楚什么是二进制兼容?所谓二进制兼容动态库,指的是一个在老版本库下运行的程序,在不经过编译的情况下,仍然能够在新的版本库下运行;需要经过编译才能在新版本下运行,而不需要修改该程 ...
分类:
其他好文 时间:
2018-08-31 19:30:54
阅读次数:
178
一般先使用ldd 来查看该应用程序缺少什么东西,然后,再根据sudo apt install XXX 去安装相应的动态库. 假如没有对应的库,可以使用: ...
分类:
系统相关 时间:
2018-08-30 11:06:06
阅读次数:
801