Android ';安全队列.h';在我的项目中找不到文件 背景
我尝试构建一个支持ffmpeg的android应用程序来播放本地视频文件。但我对一个陌生的问题感到困惑 问题 我编写代码:Android ';安全队列.h';在我的项目中找不到文件 背景,android,c++,Android,C++,我尝试构建一个支持ffmpeg的android应用程序来播放本地视频文件。但我对一个陌生的问题感到困惑 问题 我编写代码: #include "safe_queue.h" 包括SafeQueue,但IDE显示未找到“safe\u queue.h”文件。 我是一名C/C++编程新手,我不知道这有什么问题,发生了什么,以及如何修复它。此外,如果我将来遇到类似的问题,我该如何解决它 有人能帮我吗,或者讨论一下我的代码出了什么问题。谢谢 strong文本代码 My CMakeLis
#include "safe_queue.h"
包括SafeQueue,但IDE显示未找到“safe\u queue.h”文件。
我是一名C/C++编程新手,我不知道这有什么问题,发生了什么,以及如何修复它。此外,如果我将来遇到类似的问题,我该如何解决它
有人能帮我吗,或者讨论一下我的代码出了什么问题。谢谢
strong文本代码
My CMakeLists.txt:
cmake_minimum_required(VERSION 3.4.1)
include_directories(${CMAKE_SOURCE_DIR}/ffmpeg/include)
add_library(
avplayer
SHARED
avplayer/avplayer.cpp
avplayer/PreparerCallback.cpp
avplayer/AudioChannel.cpp
)
set(lib_src_DIR ${CMAKE_SOURCE_DIR}/ffmpeg/libs/${CMAKE_ANDROID_ARCH_ABI})
add_library(avcodec SHARED IMPORTED)
set_target_properties(avcodec PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libavcodec.so)
add_library(avdevice SHARED IMPORTED)
set_target_properties(avdevice PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libavdevice.so)
add_library(avfilter SHARED IMPORTED)
set_target_properties(avfilter PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libavfilter.so)
add_library(avformat SHARED IMPORTED)
set_target_properties(avformat PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libavformat.so)
add_library(avutil SHARED IMPORTED)
set_target_properties(avutil PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libavutil.so)
add_library(swresample SHARED IMPORTED)
set_target_properties(swresample PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libswresample.so)
add_library(swscale SHARED IMPORTED)
set_target_properties(swscale PROPERTIES IMPORTED_LOCATION
${lib_src_DIR}/libswscale.so)
find_library(log_lib log)
target_link_libraries(
avplayer
avcodec
avdevice
avfilter
avformat
avutil
swresample
swscale
android
${log_lib})
我的代码:
BaseChannel.h:
#ifndef VIDEOPLAYER_BASECHANNEL_H
#define VIDEOPLAYER_BASECHANNEL_H
extern "C" {
#include "../../ffmpeg/include/libavutil/rational.h"
#include "../../ffmpeg/include/libavcodec/avcodec.h"
}
#include "PreparerCallback.h"
#include "safe_queue.h" /// `safe_queue.h` file not found.
class BaseChannel {
public:
int stream_index;
AVCodecContext *context;
PreparerCallback *preparerCallback;
AVRational base_time;
double audio_time;
double video_time;
/// No template named 'SafeQueue'
SafeQueue<AVPacket *> packages;
/// No template named 'SafeQueue'
SafeQueue<AVFrame *> frames;
BaseChannel(int stream_index, AVCodecContext *pContext, AVRational av_base_time,
PreparerCallback *callback) {
this->stream_index = stream_index;
this->context = pContext;
this->base_time = av_base_time;
this->preparerCallback = callback;
}
virtual ~BaseChannel() {
}
};
#ifndef VIDEOPLAYER_AUDIOCHANNEL_H
#define VIDEOPLAYER_AUDIOCHANNEL_H
#include "BaseChannel.h"
class AudioChannel : public BaseChannel {
};
#endif //VIDEOPLAYER_AUDIOCHANNEL_H
谢谢@Damien!
最后,我检查了代码,发现“SuffyQueal.h”不是C++标准。我使用STD::队列代替。< /P>我的理解是:<代码> SuffyQueal.H./C> >不是C++标准的一部分。你必须安装/下载它。@Damien谢谢你的建议,我试着安装/下载它。。。