gpt4 book ai didi

c++ - 存在对 ffmpeg libav 的调用时静默崩溃

转载 作者:行者123 更新时间:2023-12-04 23:20:25 24 4
gpt4 key购买 nike

我有一个相当简单的例子。

#include <iostream>

extern "C"
{
#include <libavutil/opt.h>
#include <libavutil/avutil.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
}

int main(int, char **)
{
AVFormatContext *format = 0; // avformat_alloc_context();

// avformat_open_input(&format, "http://s5radio.ponyvillelive.com:8026/stream.mp3", NULL, NULL);
// avformat_find_stream_info(format, NULL);

std::cout << "Hello, world!" << std::endl;

return 0;
}
我这会输出“你好,世界!”我可以设置断点,但是当我取消注释任何调用 avformat 代码的程序时,程序会静默关闭,没有错误,也没有中断点,因此无法调试。
一个例子是改变 AVFormatContext *format = 0;AVFormatContext *format = avformat_alloc_context();或取消注释 avformat_open_input(&format, "http://s5radio.ponyvillelive.com:8026/stream.mp3", NULL, NULL); .没有断点或错误我该如何解决?
更新:
这是我从调试器中得到的:

ERROR: Unable to start debugging. Unexpected GDB output from command "-exec-run". During startup program exited with code 0xc0000139.The program 'path\to\my\project\LibavPlayground.exe' has exited with code 0 (0x00000000).


更新2:
这是我的cmake:
cmake_minimum_required(VERSION 3.0.0)
project(LibavPlayground VERSION 0.1.0 LANGUAGES CXX C)

find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBAV REQUIRED libavutil libavcodec libavformat)
include_directories(${LIBAV_INCLUDE_DIRS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_CONSTANT_MACROS -Wno-deprecated-declarations")

include_directories(include PUBLIC)
include_directories(src PRIVATE)

file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/src/*.cpp)

add_executable(LibavPlayground ${SRC_FILES})
target_link_libraries(LibavPlayground ${LIBAV_LIBRARIES})
并且所有的 libav* 库都安装了一个 pacman -S mingw-w64-x86_64-ffmpeg命令

最佳答案

当前的解决方案是使用 WSL 而不是 MinGw,因为我不会在 WSL 中重复该问题。虽然我真的希望有人有一个真正的解决方案。

关于c++ - 存在对 ffmpeg libav 的调用时静默崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67882783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com