linux生成文件中.so文件和.out文件的区别?
在链接的时候指定入口是可以制造可以运行的.so文件的典型的例子:/lib64/ld-linux-x86-64.so.2/lib64/libc.so.6因为它们都是ELF(Executable and Linking Format)文件顾名思义就知道这种文件同时兼具可执行于可连接的作用。Windows上我不熟悉,当时考虑到DLL于EXE都是PE文件,链接器那边做好入口理论上是可以执行的。但是如果Windows上有什么泾渭分明的区分就无解了
so文件怎么开?
so文件是Linux系统的可执行文件,相当于windows上的exe执行文件,只可以在Linux系统运行。so文件就是常说的动态链接库,都是C或C++编译出来的。与Java比较就是:它通常是用的Class文件(字节码).//Linux下的.so文件时不能直接运行的。一般来讲,.so文件称为共享库.//。
so文件怎么修改?
主要是gcc编译时候选择是静态库还是动态库。如下
gcc -c test.c
ar -r test.a test.o 生成静态库
gcc -fPIC -shared test.c -o test.so 生成动态库
自己生成的动态库为了能够让ld找到,必须要修改连接路径或者把动态库放到指定的目录里面。这样so文件就修改好了。
安卓类库so文件与linux类库类库文件区别?
本质上都是一样的,都是Linux的动态链接库