我已经在Qt项目中添加了我自己的.so共享库文件,它生成了以下内容:
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/lib-resources/release/ -lmysofile
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/lib-resources/debug/ -lmysofile
else:unix: LIBS += -L$$PWD/lib-resources/ -lmysofile
INCLUDEPATH += $$PWD/lib-resources
DEPENDPATH += $$PWD/lib-resources但当我在安卓设备上运行这款应用时,它却抱怨未能对.so库执行dlopen操作。
当我导航到我的构建文件夹/android-build/libs/armd64-v8a文件夹时,我在那里没有看到"libmysofile.so“。
我尝试在我的.pro中使用下面的代码来复制.so,但也不起作用,因为它需要在运行应用程序之前进行make安装,这在我的情况下被认为是太晚了,因为我正在使用Qt Creator中的运行功能。
copy_lib.files = $$PWD/lib-resources/libmysofile.so
copy_lib.path = $$[build-dir]/android-build/libs/arm64-v8a
INSTALLS += copy_lib我遗漏了什么?谢谢
发布于 2020-08-21 20:00:20
看起来你确实错过了"make install“的调用。由于您使用的是QtCreator,因此可以在构建/运行过程中添加"install“参数。
在"Projects“选项卡下,添加一个自定义流程"Make”步骤,将"install“指定为参数。如果您希望在每次构建时都执行此操作,请使用" build“部分。如果您希望仅在部署时完成,请使用"Run“部分和"Deployment steps”。请注意,当您使用QtCreator运行应用程序时,它基本上开始构建,然后部署,最后真正运行应用程序。
https://stackoverflow.com/questions/63517583
复制相似问题