FFmpeg avutil.lib 未解析的外部符号

FFmpeg avutil.lib unresolved external symbol

提问人:Sere 提问时间:8/1/2022 最后编辑:Sere 更新时间:8/2/2022 访问量:249

问:

我正在尝试通过 MSVC 项目将 FFmpeg 与 Visual sudio 2022 .NET 6 一起使用。 我遵循了这个教程:https://www.youtube.com/watch?v=qMNr1Su-nR8&ab_channel=HakanSoyalp。 我的意思是我已经配置了包含(.h)文件,库(.lib)文件和动态(.dll)文件复制到bin文件夹中。 例如,如果我调用 avformat.lib 中的 avformat_alloc_context() 方法都可以正常工作,如果我在 avutil.lib 中调用 av_file_map(...),编译器会给我一个错误: LNK2019未解析的外部符号“int __cdecl av_file_map ... 但是 avutil.lib 是链接的!! 如果我在 avutil.lib 模块中调用其他方法,也会发生同样的情况。

感谢您的帮助...

法典:

extern "C"
{
    #include <libavformat/avformat.h>
    #include <libavutil/file.h> // av_file_map
}

int ConvertJPEGtoNALs(int argc, char* argv[])
{
    AVFormatContext* fmt_ctx = NULL;
    AVIOContext* avio_ctx = NULL;
    uint8_t* buffer = NULL, * avio_ctx_buffer = NULL;
    size_t buffer_size, avio_ctx_buffer_size = 4096;
    char* input_filename = NULL;
    int ret = 0;
    struct buffer_data bd = { 0 };
    if (argc != 2) {
        fprintf(stderr, "usage: %s input_file\n"
            "API example program to show how to read from a custom buffer "
            "accessed through AVIOContext.\n", argv[0]);
        return 1;
    }
    input_filename = argv[1];
    /* register codecs and formats and other lavf/lavc components*/
    //av_register_all();    //!deprecated
    /* slurp file content into buffer */
    ret = av_file_map(input_filename, &buffer, &buffer_size, 0, NULL);
    /* fill opaque structure used by the AVIOContext read callback */
    bd.ptr = buffer;
    bd.size = buffer_size; ???
    if (!(fmt_ctx = avformat_alloc_context())) {
        ret = AVERROR(ENOMEM);
        goto end;
    }
    //... to be continue ...
}
Windows ffmpeg libav 未解析的外部 libavformat

评论

0赞 Vencat 8/1/2022
这可能会对您有所帮助 stackoverflow.com/a/57526839/10334333
0赞 Sere 8/2/2022
谢谢,但即使使用“extern C”,问题仍然存在

答: 暂无答案