我正在尝试为Android构建和使用ffmpeg。我的Andoid版本是2.2.2,ffmpeg是3.2。下面是关于如何导入重新构建库的Android文档,我认为我的设置是正确的,但是我一直在获取这个错误。
ninja: error: 'avcodec-NOTFOUND', needed by '../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/...这是设置
add_library( avcodec SHARED IMPORTED )
add_library( avdevice SHARED IMPORTED )
add_library( avfilter SHARED IMPORTED )
add_library( avformat SHARED IMPORTED )
add_library( avutil SHARED IMPORTED )
add_library( swscale SHARED IMPORTED )
set_target_properties( avcodec
PROPERTIES FFMPEG_LIB_IMPORTED_LOCATION
libs/ffmpeg/${ANDROID_ABI}/lib/libavcodec.so
)
set_target_properties( avdevice
PROPERTIES FFMPEG_LIB_IMPORTED_LOCATION
libs/ffmpeg/${ANDROID_ABI}/lib/libavdevice.so
)
set_target_properties( avfilter
PROPERTIES FFMPEG_LIB_IMPORTED_LOCATION
libs/ffmpeg/${ANDROID_ABI}/lib/libavfilter.so
)
set_target_properties( avformat
PROPERTIES FFMPEG_LIB_IMPORTED_LOCATION
libs/ffmpeg/${ANDROID_ABI}/lib/libavformat.so
)
set_target_properties( avutil
PROPERTIES FFMPEG_LIB_IMPORTED_LOCATION
libs/ffmpeg/${ANDROID_ABI}/lib/libavutil.so
)
set_target_properties( swscale
PROPERTIES FFMPEG_LIB_IMPORTED_LOCATION
libs/ffmpeg/${ANDROID_ABI}/lib/libswscale.so
)
# Specifies a path to native header files.
include_directories(
libs/ffmpeg/${ANDROID_ABI}/include
)
target_link_libraries( # Specifies the target library.
native-lib
# Links the target library to the log library
# included in the NDK.
avcodec avdevice avfilter avformat avutil swscale
${log-lib}
)如果我指定了完整的库名libavcodec.so.,错误就会消失。
target_link_libraries( # Specifies the target library.
native-lib
# Links the target library to the log library
# included in the NDK.
libavcodec.so libavdevice.so libavfilter.so libavformat.so libavutil.so libswscale.so
${log-lib}
)我想知道是否有人遇到过类似的问题,或者知道为什么编译是这样的。
发布于 2016-11-02 22:10:23
根据Tsyvarev的输入,我在这里得到的是编译和链接。
add_library( avcodec SHARED IMPORTED )
add_library( avdevice SHARED IMPORTED )
add_library( avfilter SHARED IMPORTED )
add_library( avformat SHARED IMPORTED )
add_library( avutil SHARED IMPORTED )
add_library( swscale SHARED IMPORTED )
set_target_properties( avcodec
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavcodec.so
)
set_target_properties( avdevice
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavdevice.so
)
set_target_properties( avfilter
PROPERTIES IMPORTED_LOCATION
../../../..//libs/${ANDROID_ABI}/lib/libavfilter.so
)
set_target_properties( avformat
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavformat.so
)
set_target_properties( avutil
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libavutil.so
)
set_target_properties( swscale
PROPERTIES IMPORTED_LOCATION
../../../../libs/${ANDROID_ABI}/lib/libswscale.so
)
# Specifies a path to native header files.
include_directories(
libs/${ANDROID_ABI}/include
)
target_link_libraries( # Specifies the target library.
native-lib
# Links the target library to the log library
# included in the NDK.
avcodec avdevice avfilter avformat avutil swscale
${log-lib}
)注:以下是重要的区别:
set_target_properties中的导入位置属性需要是IMPORTED_LOCATION。https://stackoverflow.com/questions/40352177
复制相似问题