首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

linux 什么是SO文件

下面的内容大多都是连接中的,穿插我自己的笔记 牵扯到ELF格式,gcc编译选项待补,简单实用的说明一下,对Linux下的so文件有个实际性的认识。 1.so文件是什么?...-soname:   soname的关键功能是它提供了兼容性的标准:   当要升级系统中的一个库时,并且新库的soname和老库的soname一样,用旧库链接生成的程序使用新库依然能正常运行。...这个特性使得在Linux下,升级使得共享库的程序和定位错误变得十分容易。   ...在Linux中,应用程序通过使用soname,来指定所希望库的版本,库作者可以通过保留或改变soname来声明,哪些版本是兼容的,这使得程序员摆脱了共享库版本冲突问题的困扰。...下面的还没细看,汗 4.库的初始化,解析: windows下的动态库加载,卸载都会有初始化函数以及卸载函数来完成库的初始化以及资源回收,linux当然也可以实现。

5.6K20

编译正常运行,打jar包运行报错(找不到文件路径)

博主个人主页:Killing Vibe的博客 欢迎大家加入,一起交流学习~~ 问题描述 Maven项目下,从resouces目录下把文件读入内存时,例如将sql文件用文件输入流读入时,编译时运行正常...,但打成jar包后运行jar包报错: Exception in thread “main” java.lang.RuntimeException: java.io.FileNotFoundException...,但我们把这个项目打包成可执行jar包的时候,在终端运行这个jar包,就会报错,系统找不到指定的这个文件路径: 原因就在于此时打包后的jar包默认是在target文件夹下,而我们的代码默认的工作目录是项目的目录...,所以一旦在jar包所在目录运行这个jar包,相对路径就不对了,就会报路径错误。...– 解决方案: 1.把这个jar包移动到工作目录上运行(很笨的方法) 2.下面推荐一种做法就是使用类加载器的方式引入资源文件 先上代码: InputStream in = DBUtil.class.getClassLoader

2.8K30
领券