我正在使用Qt 4.8.4在Mac OS和Windows上编写应用程序。该程序由可执行文件和共享库/ dll组成,它使用SQLite驱动程序。
开发主要在Mac OS上完成,这是我今天主要关注的问题。
当处于开发/调试模式时,一切都很好,Qt从框架中的硬编码路径加载其库。
部署应用程序时,它无法从我的共享库加载libqsqlite.dylib插件。应用程序和库都通过QSqlDatabase接口使用SQLite。应用程序似乎正在加载驱动程序,因为它读取了qt.conf。
部署应用程序时,启动时,其他应用程序可以使用的共享库无法加载libqsqlite.dylib驱动程序。
我的理解是Qt使用QCoreApplication加载驱动程序但是库不使用这样的类。我无法弄清楚如何指示Qt从指向包中驱动程序副本的库加载驱动程序。驱动程序位于/ Contents / PlugIns / sqldrivers中。
我尝试使用QPluginLoader类在库的入口点手动加载驱动程序并且加载工作,但是Qt没有在内存中检测到驱动程序,因此它尝试再次加载它并且它像往常一样失败。
一些细节:
任何建议都将不胜感激。
答案 0 :(得分:0)
您应该将libqsqlite.dylib放在名为sqldrivers的文件夹中,并与应用程序可执行二进制文件一起放置。还要确保将libQtSql.dylib放在应用程序二进制文件旁边。