LINUX编译了 C 语言程序,用到了 系统动态链接库.so。编译成功后,运行直接CORE了。GDB发现程序根本没开始运行就core了。如果把程序中把用到的系统动态链接库.so部分去掉,则能正常运行。
如main会用到libadd.so
目录结构
--src--add--add.h
| |_add.cpp (这里有makefile0)
|_main.cpp
|_makefile
如果makefile中加载libadd.so CXXFLAGS=-shared -fPic -Wall -g
这样可以正常生成main程序,但是执行的时候会一起动直接core掉;
应该是init时候出错,加载.so文件出错。
去掉-shared选项,make clean;make此时可以正常执行。

本文探讨了在Linux环境下编译C语言程序时遇到的问题:使用动态链接库.so导致程序启动即崩溃。通过调整编译选项排除了加载.so文件时的错误,并给出了解决方案。
2472

被折叠的 条评论
为什么被折叠?



