- 博客(4)
- 收藏
- 关注
转载 Linux下编写动态链接库的简单过程
<br />(1) 使用编译选项-fPIC,产生与位置无关的代码<br />(2) 使用编译选项-fvisibility=hidden隐藏符号<br />(3) 使用链接选项-shared表示生成动态链接库<br />(4) 使用链接选项-wl将参数传递给链接器<br />(5) 使用链接选项-soname指定库名,注意不是库文件名<br />(6) 保险起见,显式链接C库,即指定-lc,保证得到所需的启动代码,避免程序在有不兼容版本C
2010-07-18 22:17:00 813
转载 __libc_start_main函数的说明
__libc_start_mainName__libc_start_main -- initialization routineSynopsis<br /> <br />int __libc_start_main(int *(main) (int, char * *, char * *), int argc, char * * ubp_av, void (*init) (void), void (*fini) (void), void (*rtld_fini) (void), void (* stack
2010-07-18 22:10:00 10392
原创 解决一个Linux下C语言工程无法调试的问题
解决一个Linux下C语言工程无法调试的问题准备跟一下iostat(包含在sysstat软件包中)的源码。在Eclipse中新建一个Makefile工程,导入sysstat 9.1.3的源代码。代码可以通过编译,编译出来的iostat也可以正常运行。然而,在Eclipse调试运行却提示"function 'main' not defined",代码中的断点也都不起作用。在命令行下用gdb调试,在main函数上设置断点时也会提示"function 'main' not defined"。将iostat用obj
2010-07-17 20:03:00 3069
原创 一段由无符号类型引起BUG的程序
下面一C段代码,由于i为无符号整型(DWORD型),其值不可能小于0,所以for循环永远不会结束:DWORD i;i = dwInstanceListSize - 2;for(;i>=0;i--){ if(szInstanceListBuffer[i] == (TCHAR)'/0') { arrayLen++; }}编Java代码习惯了(Java里没有无符号型),故写C程序的时候不慎就出了BUG。这个BUG倒是挺有意思,或许里面有可以研究的问题。
2010-07-11 23:37:00 887 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人