大佬教程收集整理的这篇文章主要介绍了c – 链接时图书馆依赖性如何发挥作用?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
应该是1):
libmya.so: $(OBJ_FILES) $(CPp) $(LDFLAGS) -o $@ $^ libmyb.so: $(OBJ_FILES) $(CPp) $(LDFLAGS) $(LIBS) -o $@ $^ -lmya myexe: $(OBJ_FILES) $(CPp) $(LDFLAGS) $(LIBS) -o $@ $^ -lmyb
或2)
libmya.so: $(OBJ_FILES) $(CPp) $(LDFLAGS) -o $@ $^ libmyb.so: $(OBJ_FILES) $(CPp) $(LDFLAGS) $(LIBS) -o $@ $^ myexe: $(OBJ_FILES) $(CPp) $(LDFLAGS) $(LIBS) -o $@ $^ -lmya -lmyb
还是其他一些组合?
但是,这个建议仅用于制作一个so文件,就像你上面做的那样.所以文件(共享对象)是“智能”库,很像可执行文件,除了它们没有main.所以文件可以链接到其他库(如可执行文件),当可执行文件链接到so文件时,它会自动递归地包含so文件的依赖项.
“哑”库,例如文件(静态库)是一个不同的故事;那么你需要在可执行文件中进行所有链接(选项2).
我建议你使用ldd工具来调查可执行文件和so文件的依赖关系,看看它是如何工作的.
有关为什么选项1更好的实际示例,请尝试使用ldd /usr/lib/libpng.so.请注意,libpng与libz链接.如果不是,那么任何与libpng链接的人都需要链接libz.实际上,您可以在不知道涉及libz的情况下链接libpng.
以上是大佬教程为你收集整理的c – 链接时图书馆依赖性如何发挥作用?全部内容,希望文章能够帮你解决c – 链接时图书馆依赖性如何发挥作用?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。