读书人

关于动态链接库 segmentation fault,

发布时间: 2013-02-04 10:50:21 作者: rapoo

关于动态链接库 segmentation fault
我将多个cpp文件编译成o文件,命令如下:

g++ -fPIC -c c1.cpp
g++ -fPIC -c c2.cpp
g++ -fPIC -c c3.cpp

然后将多个o文件, 链接成动态链接库 so 文件,命令如下:

g++ -shared c1.o c2.o c3.o -o SocketExt.so

结果,测试时,发现只要是调用了跨文件的函数,就会报错:

segmentation fault

请问,如何解决呢?
[解决办法]
你尝试用-static 试试可以吗?如果不行的话,你可以利用分阶段编译,因为一般的程序的编译过程都是分为:预处理、编译、汇编、链接这四个步骤的,对应到选项分别利用-E,-S,-c和 -O,分段接编译定位问题看看。
[解决办法]
memory fault 是代码引起的。
与跨文件调用没有关系。
[解决办法]
同上。


代码本身的问题。

gdb调试下。
[解决办法]
编译时带-g参数,用gdb调。

读书人网 >UNIXLINUX

热点推荐