codelite交叉编译动态库学习记录
动态库配置思路:通过头文件.h对需要调用的动态库的函数进行声明,然后在cpp文件进行函数的具体实现,并通过交叉编译,实现动态库函数的编译,最终生成一个头文件加一个.so文件(linux下的动态库文件)。步骤如下:
1,在codelite中创建动态库文件,设置如下
2.对动态库包含的工程中的头文件进行路径设置
3,工程中可能使用到的其他动态库函数,需要设置引用路径和动态库名字
4,这里编译新动态库虽然有引用到其他动态库,但是在完成编译后,就已经将需要使用到的函数,变量等嵌入到新的动态库文件了,路径就不再会影响新的库文件的使用了
5,在完成环境设置以后(build文件夹下包含各类编译环境,编译环境会直接影响程序是否能通过编译),右键workspace,选择build workspace,完成编译。
6,生产了libw.so的库文件,那么在工程中要调用库文件时,首先将头文件.h放在工程调用的头文件夹中,然后把.so文件放在工程调用的动态库文件夹中,并在调用工程的setting中设置头文件路径,动态库路径以及引用库名字,然后编译,生成的bin文件下的文件即可用于板件的程序。
问题记录:1,若在计算机上存在多份同命名的源文件,可能会导致cpp读取到别的头文件,导致一些定义或者声明的缺失。调试方法:在找不到声明的头文件中屏蔽其他声明,看有没有加报错,没有则说明没有读到这个头文件,使用everything查找本地是否有同名文件。
2.在windows环境下,动态库函数需要加关键字来声明可以被调用,没有关键字可能导致无法调用到函数,但是在交叉编译下不需要该关键字,且关键字会导致报错。因为在 Linux 平台上源文件中的所有函数都有一个的visibility属性,默认导出。如果要隐藏所有函数导出,则需要在GCC编译指令中加入 -fvisibility=hidden
参数。
codelite交叉编译动态库学习记录相关推荐
- c/c++编译器配置(交叉编译重要参数)、交叉编译动态库与as配置、mk初步
gcc/g++/clang,相当于javac: 了解c/c++编译器的基本使用,能够在后续移植第三方框架进行交叉编译时,清楚的了解应该传递什么参数. clang: clang 是一个C.C++.Obj ...
- 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )
文章目录 I . 动态库 与 静态库 II . 编译动态库 III. Android Studio 使用第三方动态库 IV . Android Studio 关键代码 V . 博客资源 I . 动态库 ...
- Linux静态库和动态库学习总结
一.废话 之前由于工作需要,要封装一个Linux加密解密转换的动态库,这个之前只做过Windows下面的,Linux下面还真没有做过,之后做了整一个晚上才算做好,不过其中也学到了不少东西,包括Linu ...
- 用c++ 给易语言写支持库学习记录
废话我就不对说 直接开始 易语言官方下载的易语言安装路径下 有一个SDK文件夹 我们点进入cpp文件夹里面提供是c++的SDK elib文件夹里就是sdk 我们新建一个win32项目 这里我用的是VS ...
- linux下静态库和动态库学习
今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻.在这之前,我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情. 在Linux操作系统中,普遍使用E ...
- argparse库 学习记录
初始化 始见参数 name or flags action nargs default type choices required help dest metavar 总结 继上次的optparser ...
- linux usb 动态pm 学习记录
USB电源管理 内容: --------- *什么是电源管理? *什么是远程唤醒? * USB设备何时闲置? *动态PM的形式 *动态PM的用户界面 *更改默认的空闲延迟时间 *警告 *电源管理的驱动 ...
- Python练习——Turtle库学习记录
概述: turtle是Python标准库之一,能够进行基本的图形绘制 基本框架: 一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形.对于小海龟来说,有"前进"."后退& ...
- java jdk动态代理学习记录
转载自: https://www.jianshu.com/p/3616c70cb37b JDK自带的动态代理主要是指,实现了InvocationHandler接口的类,会继承一个invoke方法,通过 ...
- JAVA 动态代理学习记录
打算用JAVA实现一个简单的RPC框架,看完RPC参考代码之后,感觉RPC的实现主要用到了两个方面的JAVA知识:网络通信和动态代理.因此,先补补动态代理的知识.---多看看代码中写的注释 参考:Ja ...
最新文章
- 2019/5/12 查漏补缺
- 皮一皮:35岁后你做什么?
- python100个必背知识-python必背内容有哪些
- 一个使用ABAP Push Channel开发的乒乓球游戏,可以双打
- Go36-13-结构体及其方法
- jQuery选择器整理+知识总结
- 《操作系统真象还原》——0.17 先有的语言,还是先有的编译器,第1个编译器是怎么产生的...
- 新华字典mysql_数据库优化篇---MySql索引优化详解
- 常见开源代码扫描检测技术分析
- android 对话框Dialog拦截activity事件通知
- UE4入门序列06(Unreal源码编译及打包专用服务器)
- 想学python,想买本书自学,有什么推荐的书籍?
- AWS Python应用
- 3G爱立信告警信息提取
- word文档通配符换行_Word指定位置批量插入表格,别人花一天搞不出来,我只用了10秒...
- 从一到无穷大--读后感
- 发那科sub_PMC功能指令之定时器TMR(SUB3)
- 七大视频剪辑软件,达人必备,你用过几个?
- VS2008 Debug Error R6034
- matlab 计算变异系数,变异系数法求权重matlab代码
热门文章
- vip html代码,vip.html
- 【手把手】ElasticSearch的搜索推荐相关
- Java生成临时文件
- 火车硬座、高铁动车、国内经济舱 座位分布表
- 【深入理解计算机系统】CSAPP-实验四:ArchLab全网最详细
- Thrift oneway关键字
- Entry name ‘META-INF/MANIFEST.MF‘ collided
- 厦大计算机学硕考研难度,一个班半数考研 厦大录取仅两成 读研是鸡肋还是围城...
- mysql1291错误_当MySQL创建表格时出现 1291 - Column 'e_sxe' has duplicated value '?' in ENUM 错误...
- Android开发必备知识