make文件中静态连接库在command里面的位置
2013-07-30 16:26
141 查看
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
编译通过,问题解决
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里面的位置
- springmvc项目中实现静态文件映射任意位置
- node框架express里面静态文件中间件express.static,根据路径名查找文件
- 使用make更新静态库文件
- SpringBoot学习——静态文件存放位置设置
- 改伪静态配置文件位置
- asp.net连接sql2005,cs文件里直接书写的代码,纯手工操作,不在web.config里面进行配置。
- jsp生成java文件后的位置 和jsp静态页面
- Python_uWSGI部署的Django项目找不到static里面的静态文件
- SpringMVC 多控制器,静态资源访问,配置文件位置更改
- 使用make更新静态库文件
- 一个c++程序里面可以有多少个.cpp文件,如果可以有多个,那么是怎么连接的,怎么运行的。
- framework编译出的classes文件导入到eclipse里面去的位置
- python-Django中设置静态文件和模板的位置
- framework编译出的classes文件导入到eclipse里面去的位置
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)
- SpringMVC 多控制器,静态资源访问,配置文件位置更改
- SpringBoot 自定义filter 和 interceptor,自定义静态文件存放位置
- Django中模版文件和静态文件存放的位置问题
- 关于PHP程序使用file_get_content()函数进行抓取PHP程序与smarty结合编译过程中产生的静态文件,抓取不了?连接超时?(地址映射)