我有一个项目代码,代码比较复杂,我剥离了其中一部分,封装成.a库文件,我发现封装成库文件后,运行结果与原先不一致了,代码都是相同的。 经过调试发现,可能是库文件中的代码重写了一些内存变量,不过这些内存变量属于越界访问(原理同数组越界,重写了本不属于他们的变量)。
在我的代码中使用了memcpy,strcpy等库函数,没有使用printf等输入输出函数,我觉得没有必要重写__rt_lib_init(), __rt_exit(), 和__rt_lib_shutdown()。我也没有调用locale()。
我的模板是基于zlg的。
我在网上查了很多,没有找到相关的资料,请高人,帮我分析下? 在编译、链接.a文件时候需要注意些什么?
|