当前位置: 技术问答>linux和unix
急急急-静态库调用问题?
来源: 互联网 发布时间:2015-09-12
本文导语: 我现在编写了一个程序,程序调用了一个静态库(自己编译的.a文件),它是一个对卡的操作的借口函数,现在的问题是: 1、在本地计算机能顺利执行这个程序,但是如果用远程终端(叫终端1吧)登陆那台计算机再...
我现在编写了一个程序,程序调用了一个静态库(自己编译的.a文件),它是一个对卡的操作的借口函数,现在的问题是:
1、在本地计算机能顺利执行这个程序,但是如果用远程终端(叫终端1吧)登陆那台计算机再执行这个程序的话,在调用其中一个接口函数的地方会停住,而如果再开一个终端(终端2)执行一次这个程序,终端1的程序就能执行到退出,而终端2的程序有时候能退出,有时候卡在同一个地方。(他们运行的是同一个程序)
2、还有一种奇怪的情况是用一个循环语句在本机执行这个程序,一段时间显示器自动休眠后,再点击键盘,这个程序还是停在情况1的那个接口函数那
各位大哥帮忙分析一下,这个问题出在哪,急啊,小弟在这先谢谢了
1、在本地计算机能顺利执行这个程序,但是如果用远程终端(叫终端1吧)登陆那台计算机再执行这个程序的话,在调用其中一个接口函数的地方会停住,而如果再开一个终端(终端2)执行一次这个程序,终端1的程序就能执行到退出,而终端2的程序有时候能退出,有时候卡在同一个地方。(他们运行的是同一个程序)
2、还有一种奇怪的情况是用一个循环语句在本机执行这个程序,一段时间显示器自动休眠后,再点击键盘,这个程序还是停在情况1的那个接口函数那
各位大哥帮忙分析一下,这个问题出在哪,急啊,小弟在这先谢谢了
|
最好是跟踪代码,看是执行到哪句代码的时候停住了,再找原因
|
建议你这样测试来发现错误原因:
编写一个替代的静态库,接口与现有静态库完全一致,各个接口函数全部为空实现(也就是不进行任何有意义的操作)。然后将主程序与这个替代品链接,再看执行情况,如果还会挂住,那就基本可以断定主程序有问题(但并不排除静态库由问题)。如果一切正常,那可以断定是静态库德实现有问题,最简单的办法就是在每个接口调用后面打印一句话,这样就很容易发现是阻塞在那个调用上了;如果想进一步确认,可以把这个有问题的接口实现修改成空实现,再测试
编写一个替代的静态库,接口与现有静态库完全一致,各个接口函数全部为空实现(也就是不进行任何有意义的操作)。然后将主程序与这个替代品链接,再看执行情况,如果还会挂住,那就基本可以断定主程序有问题(但并不排除静态库由问题)。如果一切正常,那可以断定是静态库德实现有问题,最简单的办法就是在每个接口调用后面打印一句话,这样就很容易发现是阻塞在那个调用上了;如果想进一步确认,可以把这个有问题的接口实现修改成空实现,再测试
|
有没有权限, 都用超级用户看看网络和本地有没有区别.
还有你看看你打开的关闭的文件句柄,会不会出了什么问题.
还有你看看你打开的关闭的文件句柄,会不会出了什么问题.
|
这样的情况,没有代码很难说的清楚吧。
我想只能是说说你的需求,然后再看看思路对不对了。
我想只能是说说你的需求,然后再看看思路对不对了。
|
编译时用-L选项.
|
静态库应该叫连接吧,怎么会是“调用”呢?
|
是什么程序呢?