- 论坛徽章:
- 0
|
小弟新近接触Linux开发,出现一个在main() return 0时的段异常...求高手解答
程序很简单:
1.用C++写了一个myLib.cpp.
里边实现了一个函数void printHello().这个函数其实就是打印了一行hello world.
2.编译myLib.cpp.
g++ myLib.cpp -c;
3.把myLib.o编译成动态库,使用静态链接.
g++ myLib.o -shared -static -o myLib.so;
4.用C写了一个helo.c.
main函数里:
用dlopen()打开myLib.so.
用dlsym()取printHello()的入口.
调用printHello.
用dlclose关闭myLib.so.
打印关闭信息.
return 0;
hello world正常打印了.
在关闭信息之后出现一个断错误.
如果第3步这样编译就不会出现段错误: g++ myLib.o -shared -o myLib.so
编译动态库的时候用静态链接跟用动态链接有什么不一样?为什么会这样?
我的环境是rhel4.7,gcc 版本3.4.6.
[ 本帖最后由 MiniLolycon 于 2009-12-25 12:54 编辑 ] |
|