首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于动态链接库 segmentation fault,该如何解决

2013-02-04 
关于动态链接库segmentation fault我将多个cpp文件编译成o文件,命令如下:g++ -fPIC -cc1.cppg++ -fPIC -cc

关于动态链接库 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调。

热点排行