❶ 怎么打开.so文件
SO文件为主要与primarily Unknown Apple II File (found on Golden Orchard Apple II CD Rom)相关联的开发者文件 。
打开 SO文件的最快速最容易的方法便是双击文件。这样做可以让Windows智能决定使用正确的程序打开SO文件。
若出现无法打开SO文件的情况,很可能是因为电脑上没有安装查看或编辑SO文件扩展名的恰当程序。
若电脑打开了SO文件,但使用的是错误的应用程序,则需要更改Windows注册文件关联设置。也就是说,Windows正在使用错误的程序关联SO 文件扩展名。
❷ 如何查看so文件内容
摘要 查看so文件内容,方法如下:
❸ 求.so文件的编译、修改方法
主要是gcc编译时候选择是静态库还是动态库。如下
gcc -c test.c
ar -r test.a test.o 生成静态库
gcc -fPIC -shared test.c -o test.so 生成动态库
自己生成的动态库为了能够让ld找到,必须要修改连接路径或者把动态库放到指定的目录里面。
❹ liunx里面怎么查看so文件
方法一:
文件名已经带有版本号:
这种情况下很容易就能够看到软链指向的文件的版本号是 1.0.1
方法二:
当文件名不带版本号时:
使用readelf -a ***.so读取出文件的版本号,不过此时只能读取到主版本号,version:1
❺ eclipse怎么查看so文件
方法一:如果把so放在libs/armeabi/下,eclipse中so会自动打包进去,然后使用System.load("data/data/xxx.xxx.xxx/lib/xx.so");载入so。
方法二:如果放到assert下的话,程序运行后将assert中的so写到data/data/xxx.xxx.xxx/files/下。然后使用System.load("data/data/xxx.xxx.xxx/files/xx.so")加载。
❻ 如何打开.so文件
打开 SO文件的最快速最容易的方法便是双击文件。这样做可以让Windows智能决定使用正确的程序打开SO文件。
若出现无法打开SO文件的情况,很可能是因为电脑上没有安装查看或编辑SO文件扩展名的恰当程序。
若电脑打开了SO文件,但使用的是错误的应用程序,则需要更改Windows注册文件关联设置。也就是说,Windows正在使用错误的程序关联SO 文件扩展名。
❼ 如何查看 linux 下 so文件
方法一:
文件名已经带有版本号:
这种情况下很容易就能够看到软链指向的文件的版本号是 1.0.1
方法二:
当文件名不带版本号时:如下所示
使用readelf -a ***.so读取出文件的版本号,不过此时只能读取到主版本号,version:1
方法三:
如果文件名不带版本号,且又想知道具体的版本号的时候怎么办呢?
这时候只能使用傻瓜方法,生成md5值与已知版本号的共享库相对比了。
$ md5sum fcrypt.so.1.0.1
fcrypt.so.1.0.1
$ md5sum fcrypt.so
fcrypt.so
两个md5值一致,由此得出版本应该是1.0.1。
❽ 哪个命令可以查看.lib或.so文件
ldd 查看可执行文件链接了哪些 系统动态链接库
nm 查看可执行文件里面有哪些符号
strip 去除符号表可以给可执行文件瘦身
如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令
strings
Linux操作系统上面的动态共享库大致分为三类:
1、操作系统级别的共享库和基础的系统工具库
比方说libc.so, libz.so, libpthread.so等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr /lib64目录。如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如果是64位操作系统,还有/usr/X11R6 /lib64目录。此外还可能有其他特定Linux版本的系统库目录。
这些系统库文件的完整和版本的正确,确保了Linux上面各种程序能够正常的运行。
2、应用程序级别的系统共享库
并非操作系统自带,但是可能被很多应用程序所共享的库,一般会被放在/usr/local/lib和/usr/local/lib64这两个目录下面。很多你自行编译安装的程序都会在编译的时候自动把/usr/local/lib加入gcc的-L参数,而在运行的时候自动到/usr/local /lib下面去寻找共享库。
以上两类的动态共享库,应用程序会自动寻找到他们,并不需要你额外的设置和担心。这是为什么呢?因为以上这些目录默认就被加入到动态链接程序的搜索路径里面了。Linux的系统共享库搜索路径定义在/etc/ld.so.conf这个配置文件里面。这个文件的内容格式大致如下:
/usr/X11R6/lib64
/usr/X11R6/lib
/usr/local/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/ImageMagick/lib
假设我们自己编译安装的ImageMagick图形库在/usr/local/ImageMagick目录下面,并且希望其他应用程序都可以使用 ImageMagick的动态共享库,那么我们只需要把/usr/local/ImageMagick/lib目录加入/etc/ld.so.conf文件里面,然后执行:ldconfig 命令即可。
ldcofig将搜索以上所有的目录,为共享库建立一个缓存文件/etc/ld.so.cache。为了确认ldconfig已经搜索到ImageMagick的库,我们可以用上面介绍的strings命令从ld.so.cache里面抽取文本信息来检查一下:
strings /etc/ld.so.cache | grep ImageMagick
输出结果为:
/usr/local/ImageMagick/lib/libWand.so.10
/usr/local/ImageMagick/lib/libWand.so
/usr/local/ImageMagick/lib/libMagick.so.10
/usr/local/ImageMagick/lib/libMagick.so
/usr/local/ImageMagick/lib/libMagick++.so.10
/usr/local/ImageMagick/lib/libMagick++.so
已经成功了!
3、应用程序独享的动态共享库
有很多共享库只被特定的应用程序使用,那么就没有必要加入系统库路径,以免应用程序的共享库之间发生版本冲突。因此Linux还可以通过设置环境变量LD_LIBRARY_PATH来临时指定应用程序的共享库搜索路径,就像我们上面举的那个例子一样,我们可以在应用程序的启动脚本里面预先设置 LD_LIBRARY_PATH,指定本应用程序附加的共享库搜索路径,从而让应用程序找到它。
❾ linux下如何查看.a.so文件是由什么文件编译连接
linux下如何查看.a.so文件是由什么文件编译连接
so文件就是通常说的动态链接库,就跟windows下的dll文件差不多。
ko是内核模块文件,驱动之类的啥的。
不过在linux系统下文件的后缀多数情况下只是个标识,有可能代表不了文件的真实属性的。
至于怎么编写,就跟用VS编译dll或者lib文件差不多,把你的代码编译完成以后命名为相应的后缀就好了。
我了解的一般都是C程序,java属于脚本语言,程序多数情况下是被解释执行的,所以一般不需要编译成库。至于如何编译成库文件,如果你在windows下做过开发的话应该不用我解释太多。实在不知道的话可以再问我哈~~
希望以上回答能对你有所帮助。
❿ 怎么查看.so或者.a文件是用什么工具编译生成的
file xxx.so