您的位置:首页 > 其它

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

编译通过,问题解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐