Linux中Qt动态库的问题

4
我使用Qt基于QuickFIX引擎构建了一个名为fixapp的应用,应用正常运行。我的经纪人要求我指定本地端口以便连接他们,但是我找不到相关的配置文件,因此我修改了QuickFix的源代码。
我使用QuickFIX源代码提供的tradeclientexecutor示例进行测试,测试结果良好。tradeclient通过配置文件绑定到我指定的本地端口。
然而,当我转向使用由修改后的QuickFIX源代码构建的库时,fixapp没有绑定到我指定的本地端口。似乎我修改的部分并未改变程序的行为。
这里有哪些可能存在的问题?
更新: 我尝试在修改后的cpp文件中设置一些断点,但我的断点被忽略了。这是Debug模式而非Release模式。我感觉它正在运行旧的cpp文件并显示新的cpp文件。

你是否已经启用了Qt日志记录? - Andrew Tomazos
你是指像 qDebug() 这样的东西吗? - Ian Xu
2
所以Qt库有一个调试模式,它会记录错误消息。如果你正在使用Qt网络模块,并且它是无法绑定的模块,那么如果你在其中打开日志记录,你应该会得到一个错误消息,这将有助于在打开调试时识别问题。http://qt-project.org/doc/qt-4.8/debug.html - Andrew Tomazos
我已经查看了你发送给我的链接。我按照默认设置安装了Qt。似乎启用了-debug选项。还有一件事,我可以使用qDebug()。这是否意味着我已经开启了调试模式?打开调试模式后,错误消息会在窗口“应用程序输出”中显示吗?我浏览了“应用程序输出”和“编译输出”,似乎没有任何与绑定相关的内容出现。顺便问一下,除了fixapp创建的GUI窗口之外,是否可能有一个标准输出窗口?我想修改源代码以输出一些东西来帮助我确定问题所在。 - Ian Xu
你尝试过在绑定应该发生的部分之前设置断点,逐步执行并检查相关变量状态和返回值吗? - Andrew Tomazos
显示剩余2条评论
1个回答

0
问者发现 quickfix 库的路径是 .../quickfix/lib,而我在 fixapp 中引用外部库的路径也是 .../quickfix/lib。然而,当他在 /usr/lib 中检查库路径时,库仍然是旧的。一旦他替换了 /usr/lib 中的库,fixapp 就开始工作了。他不知道为什么他在 Qt 中引用的路径不起作用,但 /usr/lib 起作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接