make文件中静态连接库在command里面的位置
linux软件第一次调用动态连接库的时候要延迟几秒,怀疑在突然掉库的时候动态库加载耗费了时间,所以造成延时,遂改为静态库方式,原来的makefile文件是
testmac:
cp $(IPC_DIR)/libmem.so ./
cp $(IPC_DIR)/libipc.so ./
$(CC) $(CFLAGS) -L. -lmem -lipc $(MACROS) -I $(SHAREINC_DIR) \
./lib/int_sqrt.c \
./src/ac_lteTestMac.c \
./src/ac_lteTestMacInit.c \
./src/ac_lteTestMacThread.c \
./src/ac_lteTestPhy2MacMsgHandle.c \
./src/ac_lteTestMac2PhyMsgHandle.c \
./src/ac_lteTestMacSocketDumpHandle.c \
./src/ac_lteTestMacProc.c \
./src/ac_lteTestMacSocket.c \
./src/ac_lteTestMacCasePostProc.c \
./src/ac_lteTestMacStatCalc.c \
./src/ac_lteTestMacTimeStamp.c \
./src/ac_lteTestMacCmdLine.c \
./src/ac_lteTestMac2PhyProc.c \
./src/ac_lteTestMacDdrPerTest.c \
-g -o testmac9131 -Wl,-Map,testmac9131.map
我改为
testmac:
cp $(IPC_DIR)/libmem.a ./
cp $(IPC_DIR)/libipc.a ./
$(CC) $(CFLAGS) -L. -lmem -lipc $(MACROS) -I $(SHAREINC_DIR) \
./lib/int_sqrt.c \
./src/ac_lteTestMac.c \
./src/ac_lteTestMacInit.c \
./src/ac_lteTestMacThread.c \
./src/ac_lteTestPhy2MacMsgHandle.c \
./src/ac_lteTestMac2PhyMsgHandle.c \
./src/ac_lteTestMacSocketDumpHandle.c \
./src/ac_lteTestMacProc.c \
./src/ac_lteTestMacSocket.c \
./src/ac_lteTestMacCasePostProc.c \
./src/ac_lteTestMacStatCalc.c \
./src/ac_lteTestMacTimeStamp.c \
./src/ac_lteTestMacCmdLine.c \
./src/ac_lteTestMac2PhyProc.c \
./src/ac_lteTestMacDdrPerTest.c \
-g -o testmac9131 -Wl,-Map,testmac9131.map
编译失败,/testmac/./src/ac_lteTestMacInit.c:151: undefined reference to `fsl_usmmgr_p2v'
看了网上的一些文章,后面猜想是库的位置不对,因为.c文件依赖后面的.a里面的.o,修改makefile如下
testmac:
#cp $(IPC_DIR)/libmem.so ./
#cp $(IPC_DIR)/libipc.so ./
cp $(IPC_DIR)/libmem.a ./
cp $(IPC_DIR)/libipc.a ./
$(CC) $(CFLAGS) $(MACROS) -I $(SHAREINC_DIR) \
./lib/int_sqrt.c \
./src/ac_lteTestMac.c \
./src/ac_lteTestMacInit.c \
./src/ac_lteTestMacThread.c \
./src/ac_lteTestPhy2MacMsgHandle.c \
./src/ac_lteTestMac2PhyMsgHandle.c \
./src/ac_lteTestMacSocketDumpHandle.c \
./src/ac_lteTestMacProc.c \
./src/ac_lteTestMacSocket.c \
./src/ac_lteTestMacCasePostProc.c \
./src/ac_lteTestMacStatCalc.c \
./src/ac_lteTestMacTimeStamp.c \
./src/ac_lteTestMacCmdLine.c \
./src/ac_lteTestMac2PhyProc.c \
./src/ac_lteTestMacDdrPerTest.c \
-g -L. -lmem -lipc -o testmac9131 -Wl,-Map,testmac9131.map
编译通过,问题解决
make文件中静态连接库在command里面的位置的更多相关文章
- Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库 本文地址:https ...
- VC++静态连接库
目录 第1章静态连接库 1 1.1 同名函数的选择 1 1.2 模块合并 2 1.2.1 模块替换 4 1.3 内联函数 4 第1章静态连接库 静态连接库与动态连接库一样 ...
- mysql如何从全备文件中恢复单个库或者单个表
mysql如何从全备文件中恢复单个库或者单个表 在mysql dba的日常实际工作中,一个实例下有多个库,而我们常见的备份就是全库备份.那么问题就来了,如果需要恢复单个库或者单个表,怎么办了,网上有很 ...
- 从MySQL全备文件中恢复单个库或者单个表
从MySQL全备文件中恢复单个库或者单个表 提取建库语句 sed -n '/^-- Current Database: db_cms/,/^-- Current Database: `/p' back ...
- windows 查看动态连接库和静态连接库的方法
在window下查看动态库的导出函数可以用vs自带的Dependenc工具: 查看静态库的信息要用命令行来实现: dumpbin /LINKERMEMBER Test.lib > ...
- Modelsim SE自动化仿真——如何将.do文件中自定义的库链接到testbench顶层模块
我们用Modelsim SE进行仿真时,为了方便,一般会编写.do文件来启动当前仿真.关于.do文件的编写,一般网上都有成型的模板,我们只要稍微改几个参数,就可以符合我们的仿真需求了.但是如果仿真时需 ...
- Linux 静态链接库和动态连接库
(0)文件夹 VMware 下安装Ubuntu的吐血经历 零基础学习Shell编程 Linux下的makefile的妙用 Linux调试神器 -- gdb 十分钟学会Python的基本类型 Linux ...
- (C#)WPF:.h(头文件)、.lib(静态链接库文件)和.dll(动态链接库文件)之间的区别与联系
静态链接库(Lib)与动态链接库(DLL)的区别 静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件:动态链接就是把调用的函数所在文件模块(DLL)和 ...
- 制作与使用静态链接库(.lib)文件
(一)制作.lib文件 (1)打开vs,选择“新建项目”,选择“Visual C++“,选择”Win32 控制台应用程序“. (2)点击”确定“,点击”下一步“,设置如下 (3)点击”完成“,然后就可 ...
随机推荐
- Swift - 17 - 数组的初始化
import UIKit // 声明数组 var array = ["A", "B", "C", "D", " ...
- ADO.NET复习——自己编写SqlHelper类
今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...
- 8.模板方法模式-[Head First 设计模式]
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 要点: “模板方法”定义了算法的步骤,把这些步骤的实现延 ...
- C++ Built-In Array 的语义
C++ 编译花了大量精力使得class和原始类(primitive types)的用法一致.比如array的应用: A a[100]:// A is class int b[100]: 虽然a是用户定 ...
- cocos2d-x 读取 json 文件并用 jsoncpp 做解析
一码胜万言(请看注释) CclUtil.h // // CclUtil.h // PracticeDemo // // Created by kodeyang on 8/1/13. // // #if ...
- 在VMware安装Centos再安装Oracle数据库(个人学习使用)
打开VMware 选择稍后安装 自定义安装 小生安装的是64位的Centos 给虚拟机设置名称和安装位置 设置虚拟机打处理器并分配内存(oracle12G我建议内存为2G以上) 网络类型选择仅主机模式 ...
- 无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。
无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满.请删除不需要的文件.删除文件组中的对象.将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘 ...
- php 带cookie登陆
<?php /** * @version $id */ define('SCRIPT_ROOT',dirname(__FILE__).'/'); $act = trim($_REQUEST['a ...
- Deprecated: Call-time pass-by-reference has been deprecated in E:\wamp\www\admin\htdocs\busi.php on line 381
Deprecated: Call-time pass-by-reference has been deprecated in E:\wamp\www\admin\htdocs\busi.php on ...
- Uva 120 - Stacks of Flapjacks(构造法)
UVA - 120 Stacks of Flapjacks Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld &a ...