我的项目在Visual Studio 2010上使用了一些libavcodec库。 在更新了libs(替换lib和包含来自Libav)并解决所有编译器错误(3年后在libavcodec中更改了一些内容)之后,项目编译没有问题,但是我编译的dll不起作用。
我99%肯定这是一些依赖问题。当然,我不仅更新了我项目的链接库,还将正确的新dll放入了构建文件夹。
我从未见过的奇怪的事情是依赖步行者检测到来自不同dll的完全错误的导入,见图像。
正如您所看到的,所有链接的库似乎都表示相同的导入 - 这些库不会导出的功能。
除了在链接器部分中指定libs之外,我唯一能做的就是在我的程序中包含.h文件,当然然后大量使用它们; - )
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavutil/opt.h>
#include <libavutil/imgutils.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libswresample\swresample.h>
}
我尝试了什么:
答案 0 :(得分:1)
根据您当前的项目设置自定义构建二进制文件是避免像您面临的那样令人讨厌的链接器错误的关键。
您可以使用github中的vcpkg.exe构建ffmpeg项目并为x86或x64计算机重建二进制文件。
在系统上安装vcpkg后,转到Powershell提示符并输入。\ vcpkg install ffmpeg。完成安装后,输入“。\ vcpkg integrate install”,以便可以使用最新的ffmpeg库。