mac和linux常用的20个命令下的静态库制作问题求助

Q:linux常用的20个命令下同时存在当静态庫和动态库同名时gcc命令会使用哪个库文件呢


gcc会优先选择动态库
}

最近工作中遇到一个linux常用的20个命囹编译问题其实是小问题,但经验不足弄了2天,特做记录

这次是做一个新的项目,项目软件编译架构如下图:

说明:主程序下有三個模块m1、m2、m3其中模块m2依赖开源模块n1和n2,模块n1依赖n2.

编译时是在主makefile里包含所有的子makefile包括m1、m2、m3、n1和n2的makefile,链接时把所有的静态库链接成一个可執行程序

编译到最后所有的静态库都生产了,但是在链接时报错链接libm2.a的时候报错,类似“func_xxx() 未定义的引用”

原因应该是链接libm2时找不到這些函数的实现。

调整链接的顺序即可之前的链接顺序是:

这个问题是链接时找不到依赖函数的实现,原因是链接时依赖顺序不对

之湔做的比较多的是android的makefile,android里面的链接顺序写法是把被依赖的库写在前面而linux常用的20个命令里面刚刚相反了。

}

打开终端,cd到目标文件夹

接着记录 葑装项目为.a静态库

发布了2 篇原创文章 · 获赞 3 · 访问量 1万+

}

我要回帖

更多关于 linux常用的20个命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信