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. app发布流程详解

    https://developer.apple.com 1. 点击 Member Center 2. 创建应用ID 3. 创建项目 4. 在AppStore创建对应的应用 5. 创建授权文件 6. 配 ...

  2. CSS 布局Float 【1】

    1.HTML元素分类 HTML元素大题可分为内联(inline)元素和块(block)元素. 1.1 内联元素(inline) ①元素显示方式:"文本方式",1个挨着1个,不独自占 ...

  3. Java study 1:The note of studying Socket which based UDP

    UDP concept: UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参 ...

  4. spring web flow 2.0入门(转)

    Spring Web Flow 2.0 入门 一.Spring Web Flow 入门demo(一)简单页面跳转 附源码(转) 二.Spring Web Flow 入门demo(二)与业务结合 附源码 ...

  5. Linux下python3与python3的多版本共存

    python3已经出来有些许时候了,python3相比python2进行了大量的改进,包括语法,新的功能,还有优化.虽然很多库已经同时支持 python2和python3了,但是有些库仍然没有很好的支 ...

  6. Extjs中Chart利用series的tips属性设置鼠标划过时显示数据

    效果如下: 从官网找到的例子,大家参考下吧.源码: Ext.require('Ext.chart.*'); Ext.require('Ext.layout.container.Fit'); Ext.o ...

  7. Websocket 与代理服务器如何交互? How HTML5 Web Sockets Interact With Proxy Servers

    How HTML5 Web Sockets Interact With Proxy Servers Posted by Peter Lubberson Mar 16, 2010 With the re ...

  8. python3可变与不可变数据类型

    Python3中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Dictionary(字典) Tuple(元组) Set(集合) 我理解的可变就是当一个变量创建 ...

  9. Python自动化运维之21、CSS

    一.css简介 CSS 是 Cascading Style Sheets的缩写,称为层叠样式表,用来设计网页的样式布局,以及大小来适应不同的屏幕等,使网页的样式和网页数据分离, 二.导入css 导入c ...

  10. phpinfo.php

    ---恢复内容开始--- apache中的配置不对 查看httpd.conf文件中是否有: AddType ...... AddType application/x-httpd-php .php -- ...