我面临一个奇怪的问题,很难知道为什么,因为编译器没有给出任何错误。
我在android studio 2.2.2中创建了一个支持C ++的新项目。 我编辑了src / main / cpp中的.cpp文件并编译了项目以获取(.so)文件,我可以将其用作共享库。到目前为止,一切都很完美。
以下是问题发生的地方:
我正在尝试从ffmpeg链接预构建共享库。我已经用.so格式构建了库,我需要做的就是将它们链接到我的.cpp文件。
要链接这些库,我在android studio中打开了CMakeLists.txt并告诉cmake使用以下代码链接这些预建共享库:
add_library(libavformat SHARED IMPORTED)
set_target_properties(libavformat PROPERTIES IMPORTED_LOCATION C:/Android /SDK/MyProjects/ffmpeg_to_jpg/P3/app/src/main/jniLibs/libavformat-55.so)
include_directories(src/main/cpp/include/)
target_link_libraries(native-lib libavformat)
此代码基本上将libavformat链接到native-lib(从我的.cpp文件创建)
链接过程工作正常,原因是编译器不会因任何依赖关系而哭泣。
但是,我的原始共享库(native-lib)停止工作,我的意思是,我无法从中调用任何函数。
如果我删除链接线
target_link_libraries(native-lib libavformat)
native-lib.so工作正常,我可以从内部调用任何不依赖于libavformat的函数。
我不确定发生了什么,就像我说编译器没有发出任何警告或错误。它几乎就像在链接过程之后,libavformat !!!!
覆盖了native-lib的内容任何想法?