当前位置: 技术问答>linux和unix
静态库调用问题?
来源: 互联网 发布时间:2015-09-17
本文导语: 我现在编写了一个程序,程序调用了一个静态库(自己编译的.a文件),它是一个对卡的操作的借口函数,现在的问题是: 1、在本地计算机能顺利执行这个程序,但是如果用远程终端(叫终端1吧)登陆那台计算机再...
我现在编写了一个程序,程序调用了一个静态库(自己编译的.a文件),它是一个对卡的操作的借口函数,现在的问题是:
1、在本地计算机能顺利执行这个程序,但是如果用远程终端(叫终端1吧)登陆那台计算机再执行这个程序的话,在调用其中一个接口函数的地方会停住,而如果再开一个终端(终端2)执行一次这个程序,终端1的程序就能执行到退出,而终端2的程序有时候能退出,有时候卡在同一个地方。(他们运行的是同一个程序)
2、还有一种奇怪的情况是用一个循环语句在本机执行这个程序,一段时间显示器自动休眠后,再点击键盘,这个程序还是停在情况1的那个接口函数那
各位大哥帮忙分析一下,这个问题出在哪,急啊,小弟在这先谢谢了
1、在本地计算机能顺利执行这个程序,但是如果用远程终端(叫终端1吧)登陆那台计算机再执行这个程序的话,在调用其中一个接口函数的地方会停住,而如果再开一个终端(终端2)执行一次这个程序,终端1的程序就能执行到退出,而终端2的程序有时候能退出,有时候卡在同一个地方。(他们运行的是同一个程序)
2、还有一种奇怪的情况是用一个循环语句在本机执行这个程序,一段时间显示器自动休眠后,再点击键盘,这个程序还是停在情况1的那个接口函数那
各位大哥帮忙分析一下,这个问题出在哪,急啊,小弟在这先谢谢了
|
我不知道你的程序是怎么写的。但是从现象看好像是条件竞争引起的死锁。
发生的几率不高,但是在重复运行很多次的时候总会出现。
发生的几率不高,但是在重复运行很多次的时候总会出现。
|
有代码就好办,跟踪代码
如果问题在.a文件里面,最好把.a文件里的源代码copy到有main的代码里,再直接调用这时面的函数看有没这问题,估计不可能是因为调用了.a才出这问题
如果问题在.a文件里面,最好把.a文件里的源代码copy到有main的代码里,再直接调用这时面的函数看有没这问题,估计不可能是因为调用了.a才出这问题
|
你说的这些都是没有什么trick。与其在这里找各种理由解释这些奇怪现象,不如静下心来看你的程序锁死在什么地方。
你想找各种理由解释你程序没有问题的时候,问题往往其实就在你的程序里。
你想找各种理由解释你程序没有问题的时候,问题往往其实就在你的程序里。
|
真是奇怪的问题
按理说在本机和终端没什么大的区别啊
就是一些环境不一样,你先检查一下环境看看
按理说在本机和终端没什么大的区别啊
就是一些环境不一样,你先检查一下环境看看
|
up
|
帮你顶