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