Android ';安全队列.h';在我的项目中找不到文件 背景

Android ';安全队列.h';在我的项目中找不到文件 背景,android,c++,Android,C++,我尝试构建一个支持ffmpeg的android应用程序来播放本地视频文件。但我对一个陌生的问题感到困惑 问题 我编写代码: #include "safe_queue.h" 包括SafeQueue,但IDE显示未找到“safe\u queue.h”文件。 我是一名C/C++编程新手,我不知道这有什么问题,发生了什么,以及如何修复它。此外,如果我将来遇到类似的问题,我该如何解决它 有人能帮我吗,或者讨论一下我的代码出了什么问题。谢谢 strong文本代码 My CMakeLis

我尝试构建一个支持ffmpeg的android应用程序来播放本地视频文件。但我对一个陌生的问题感到困惑

问题 我编写代码:

#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谢谢你的建议,我试着安装/下载它。。。