遇到问题:
in function `_start':
(.text+0x24): undefined reference to `main'
原因:这是没有使用了共享库,没有链接,添加了-shared选项之后,即可
gcc -shared -g -o test test.c
遇到问题:
2、当前程序中有用到某个静态库,那个静态库编译.o文件的时候没有加上-fPIC(静态库其实就是.o文件打包)。补充一点:我发现手写Makefile时即使不加-fPIC也没有这个问题,这一点很郁闷,这个只在用automake工具编译出.a文件时才出现过。
原因:某些版本的gcc默认没加-fPIC参数
解决办法:保证你编译.o文件的时候,都加上-fPIC,这样你才能编译出动态库来。
$gcc-fPIC -c hello.c
$gcc-fPIC -c main.c
$gcc -shared -fPIC -o hello hello.o main.o