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里面的位置的更多相关文章

  1. Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库     本文地址:https ...

  2. VC++静态连接库

    目录 第1章静态连接库    1 1.1 同名函数的选择    1 1.2 模块合并    2 1.2.1 模块替换    4 1.3 内联函数    4 第1章静态连接库 静态连接库与动态连接库一样 ...

  3. mysql如何从全备文件中恢复单个库或者单个表

    mysql如何从全备文件中恢复单个库或者单个表 在mysql dba的日常实际工作中,一个实例下有多个库,而我们常见的备份就是全库备份.那么问题就来了,如果需要恢复单个库或者单个表,怎么办了,网上有很 ...

  4. 从MySQL全备文件中恢复单个库或者单个表

    从MySQL全备文件中恢复单个库或者单个表 提取建库语句 sed -n '/^-- Current Database: db_cms/,/^-- Current Database: `/p' back ...

  5. windows 查看动态连接库和静态连接库的方法

    在window下查看动态库的导出函数可以用vs自带的Dependenc工具: 查看静态库的信息要用命令行来实现: dumpbin   /LINKERMEMBER   Test.lib   >   ...

  6. Modelsim SE自动化仿真——如何将.do文件中自定义的库链接到testbench顶层模块

    我们用Modelsim SE进行仿真时,为了方便,一般会编写.do文件来启动当前仿真.关于.do文件的编写,一般网上都有成型的模板,我们只要稍微改几个参数,就可以符合我们的仿真需求了.但是如果仿真时需 ...

  7. Linux 静态链接库和动态连接库

    (0)文件夹 VMware 下安装Ubuntu的吐血经历 零基础学习Shell编程 Linux下的makefile的妙用 Linux调试神器 -- gdb 十分钟学会Python的基本类型 Linux ...

  8. (C#)WPF:.h(头文件)、.lib(静态链接库文件)和.dll(动态链接库文件)之间的区别与联系

    静态链接库(Lib)与动态链接库(DLL)的区别 静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件:动态链接就是把调用的函数所在文件模块(DLL)和 ...

  9. 制作与使用静态链接库(.lib)文件

    (一)制作.lib文件 (1)打开vs,选择“新建项目”,选择“Visual C++“,选择”Win32 控制台应用程序“. (2)点击”确定“,点击”下一步“,设置如下 (3)点击”完成“,然后就可 ...

随机推荐

  1. JAVA-4-斐波列

    public class Ch049 { public static void main(String[] args) { // TODO 自动生成的方法存根 int a = 1, b = 1; fo ...

  2. C++ 性能剖析 (三):Heap Object对比 Stack (auto) Object

    通常认为,性能的改进是90 ~ 10 规则, 即10%的代码要对90%的性能问题负责.做过大型软件工程的程序员一般都知道这个概念. 然而对于软件工程师来说,有些性能问题是不可原谅的,无论它们属于10% ...

  3. 安装 php

    1.yum安装php yum install php 2.配置 apache 支持 php a.找到httpd.conf find / -name  httpd.conf b.编辑 httpd.con ...

  4. android异常之emulator-arm.exe已停止工作

    我遇到的这个问题通过降低了AVD的分辨率后解决了,估计是电脑的显卡不行.

  5. extjs之TypeError: d.read is not a function解决方案

    在创建如下代码时报出此错:TypeError: d.read is not a function Ext.define('shebyxgl_sheb_model', { extend: 'Ext.da ...

  6. centos7 服务器安装nginx,mysql,php

    一.概述 项目的需要,今天在虚拟机上基于Centos安装配置了服务器运行环境,web服务用 nginx,数据库存储在mysql,动态脚本语言是php. 二.步骤 首页保证Centos7已经安装完毕,正 ...

  7. jquery easy ui 学习 (4) window 打开之后 限制操纵后面元素属性

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. JQuery Dialog(JS模态窗口,可拖拽的DIV) 效果实现代码

    效果图 调用示意图   交互示意图 如上图所示,这基本是JQueryDialog的完整逻辑流程了. 1.用户点击模态窗口的“提交”按钮时,调用JQueryDialog.Ok()函数,这个函数对应了用户 ...

  9. JS之路——日期函数

    时间对象是一个我们经常要用到的对象,无论是做时间输出.时间判断等操作时都与这个对象离不开.除开JavaScript中的时间对象外,在VbScript中也有许多的时间对象,而且非常好用.下面还是按照我们 ...

  10. select m objects from n objects randomly

    Q: how to select m objects randomly from n objects with euqal possibility? A: allocate an array of m ...