我有两个级联项目。
我从一个项目构建一个共享库(.so),在另一个项目中我使用这个.so文件。
要构建此(.so)文件,我们使用以下.pro文件 -
APP_NAME = XYZ
TEMPLATE = lib
TARGET = XYZ
CONFIG += qt warn_on debug_and_release cascades
LIBS += -lpps -lscreen -lEGL -lGLESv1_CM -lfreetype -lpng -lbb -ljpeg -lbbdata -lbbsystem -lbbdevice -lsqlite3 -lbbutility
include(config.pri)
现在要添加此(.so)文件,请按照此knowledgebase。
现在问题是我无法使用设备上的Device-Release运行我的应用程序Q10& Z10。以下错误来自qnx编译器 -
unable to release application on target
但是Device-Debug&模拟器 - 调试工作正常。
奇怪的是,如果我在没有(.so)文件的情况下构建我的应用程序,那么它正在使用Device-Release。所以,我怀疑里面的问题(.so)。可能正在构建(.so)文件有一些问题。
我在谷歌搜索了很多东西并尝试关注事物 -
compiling library and resources
但这一切都不适合我。非常需要你的帮助。 提前谢谢。
答案 0 :(得分:1)
我从来没有能够让这个工作。我相信它与用于Device-Release版本的Cascades zygote的构建有关,但我还没有真正研究过它。
进一步考虑后,我决定使用静态库。如果使用共享对象库,则库中包含的所有代码都必须位于设备上。对于像C标准库这样广泛使用的库来说,这非常有效,因为很多程序都喜欢它们。但是对于您自己的库,您必须将库包含在您的程序中,因此无论是否在程序中实际调用它,您都将包含目标代码。如果库最终增长到一个大尺寸,而你只使用它的一小部分,那就浪费了。当您静态链接到库时,只包含程序中实际需要的那些对象模块。