makefile 中指定程序运行时加载的库文件路径
来源:互联网 发布:淘宝图书发票有什么用 编辑:程序博客网 时间:2024/06/05 10:51
1 问题描述
程序运行时,提示找不到库。
原因:默认运行加载的库路径为 /usr/lib
2 解决方法
2.1 方法一,设置PATH环境变量
如何在加入这些路径呢?以PATH变量为例。
一种方法是:直接在命令行下:
$ export PATH
这种方法的好处是方便,立即生效,缺点是把当前会话或shell关了之后就失效了,下次还得运行一遍。
2.2 方法二, 修改makefile,直接指定路径
另一种方法是:makefile 中增加运行程序的库文件路径
LDFLAGS+= -Wl,-Bstatic -lbt
LDFLAGS+= -Wl,-rpath=/opt/lib/
LDDIR+=-Lhost/libbt/lib
CC=/opt/toolchain/arm-2012.03/bin/arm-none-linux-gnueabi-gcc
编译指令:
3 makefile 相关参数说明
CFLAGS 表示用于 C 编译器的选项,
CXXFLAGS 表示用于 C++ 编译器的选项。
这两个变量实际上涵盖了编译和汇编两个步骤。
先来看几个相关的环境变量:PATH、LDFLAGS、CFLAGS
LDFLAGS:gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLAGS=“-L/usr/lib -L/path/to/your/lib”。每安装一个包都几乎一定的会在安装目录里建立一个lib目录。如果你明明安装了某个包,而安装另一个包时,它愣是说找不到,那就把那个包的lib路径加入的LDFALGS中试一下。
CFLAGS:和LDFLAGS类似,只不过要向里加如的是头文件(.h文件)的路径,如:CFLAGS=“-I/usr/include -I/path/to/your/include”。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。
- makefile 中指定程序运行时加载的库文件路径
- 在makefile中指定动态库路径
- 输出指定文件夹中指定类型的所有文件路径
- 一个修改文件中指定内容的程序
- 运行配置文件中指定的扩展时出现异常
- 此编译单元不包含在frame元数据中指定的factoryClass,无法加载配置的运行时共享库
- 远程桌面中指定在用户登录时启动的程序
- 根据资源路径加载ZIP压缩包中指定的资源
- 根据资源路径加载ZIP压缩包中指定的资源
- gcc 中指定头文件路径及动态链接库路径
- 删除文件中指定的部分内容
- VC中指定include文件的目录
- 查询文件中指定字符的记录
- java读取jar中指定的文件
- C++替换文件中指定的内容
- sed 删除文件中指定的行
- mfc中指定文件打不开的问题
- 加密so文件中指定的函数
- 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
- PhantomJS
- QT中PRO文件写法的详细介绍
- mybatis 应用第三方缓存框架ehcache
- 深入理解javascript原型和闭包(12)——简介【作用域】
- makefile 中指定程序运行时加载的库文件路径
- 100000个嵌入式学习者遇到的PING不通问题,我们使用这一个视频就解决了,牛!
- OTSU
- Ubuntu 软件中心不显示软件解决办法
- Debian 9.x "stretch" 安装 vnStat 统计服务器流量
- Android UI效果篇-(3)用属性动画实现收缩菜单
- 百款最流行Android个性化控件
- 朴素贝叶斯分类算法
- Mysql学习-索引