Linux 中 Qt 动态库的问题
Posted
技术标签:
【中文标题】Linux 中 Qt 动态库的问题【英文标题】:Issue with Qt dynamic library in Linux 【发布时间】:2012-09-12 02:16:31 【问题描述】:我在Qt中基于QuickFIX Engine构建了一个应用程序,命名为fixapp
;它工作正常。我的经纪人要求我指定一个本地端口来连接到他们。然后找不到这样的配置文件,于是修改了QuickFix的源码。
我用QuickFIX源码带来的tradeclient
和executor
的例子来测试。这行得通。 tradeclient
绑定到我在配置文件中指定的本地端口。
但是,当我转向fixapp
时,使用修改后的QuickFIX 源代码构建的库,它并没有绑定到我指定的本地端口。看来我修改的部分并没有改变程序的行为。
这里有什么潜在的问题?
更新:
我试图在QuickFix
源代码中设置一些断点。在我修改的一个 cpp 文件中,我的断点被忽略了。它是调试模式,而不是发布模式。我觉得它正在运行旧的 cpp 文件并显示新的 cpp 文件。
【问题讨论】:
您收到的确切错误信息是什么? 嗨安德鲁,我没有任何错误信息。它只是没有绑定到我指定的端口。我希望 fixApp 作为 tradeclient 绑定到我指定的端口。 你打开 Qt 日志了吗? 你的意思是像 qDebug() ? 因此 Qt 库有一个调试模式,它们将记录错误消息。如果您使用的是 Qt 网络模块并且它是绑定失败的模块,那么如果您在其中打开登录,您应该会收到一条错误消息,如果您打开调试,这将有助于识别问题。 qt-project.org/doc/qt-4.8/debug.html 【参考方案1】:提问者发现quickfix库路径是.../quickfix/lib
,而我在fixapp
中引用外部库的路径也是.../quickfix/lib
。但是,当他检查/usr/lib
中的库路径时,该库仍然是旧库。一旦他替换了/usr/lib
中的那个,fixapp
就开始工作了。他不知道为什么他在 Qt 中引用的路径不起作用,但 /usr/lib
起作用。
【讨论】:
以上是关于Linux 中 Qt 动态库的问题的主要内容,如果未能解决你的问题,请参考以下文章