0

我用 Visual Studio Pro 2012 创建了一个新的 c++ 项目。

我尝试添加 C 语言1ib文件,但出现一些LINK错误,例如:

Error 2 error LNK2019: unresolved external symbol _av_malloc@4 referenced in function _video_encode_example@4 D:\C-Sharp\C++ Compiling\ConsoleApplication7\ConsoleApplication7\example.obj ConsoleApplication7

就我而言,我去了“项目名称”中的“属性”,然后到顶部,在 附加依赖项中我确实编辑并添加了所有文件:Solution ExplorerLinker > Input.lib

avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib

我需要添加更多丢失的 .lib 文件吗?我又看了一遍,这些是我仅有的 .lib 文件。

我没有更改链接器中的任何其他内容。在 VC++ 中,我将包含目录更改为:D:\C-Sharp\C++ Compiling\ConsoleApplication4\ConsoleApplication1\include

include目录中,每个目录中都有一些目录以及一些头文件。

引用目录和库目录都改成同一个目录:'D:\c++dev\ffmpeg-20130418-git-ee94362-win64-dev\lib'。这个目录里面有Lib文件,有文件,DEF还有一些A文件。

我该如何解决这些错误?

** 我在 google 中搜索我试图将 SubSystem 更改为 Console,但它没有帮助。** 我已经有了主要功能:

#include "stdafx.h"
#include "targetver.h"

int _tmain(int argc, _TCHAR* argv[])
{

    return 0;
}

我有 8 个 LINK 错误,错误号 9 是:

错误 10 error LNK1120: 8 unresolved externals D:\C-Sharp\C++ Compiling\ConsoleApplication7\Debug\ConsoleApplication7.exe 1 1 ConsoleApplication7

我还能做些什么来解决这个问题?

** 编辑 **

将项目目标更改为 x64 现在我只有两个链接错误:

错误 2 错误 LNK2019:未解析的外部符号 avcodec_open 在函数 video_encode_example D:\C-Sharp\C++ Compiling\ConsoleApplication7\ConsoleApplication7\example.obj ConsoleApplication7 中引用

错误 3 error LNK1120: 1 unresolved externals D:\C-Sharp\C++ Compiling\ConsoleApplication7\x64\Debug\ConsoleApplication7.exe 1 1 ConsoleApplication7

试图双击它们但没有。我不知道现在该怎么办。

4

2 回答 2

2

我刚刚在您的问题中发现您正在使用 ffmpeg 库。

如果要将这些链接到 C++ 项目中,则必须确保将#include语句包装在一个extern "C"块中,如下所示:

extern "C"
{
    #include "avformat.h"   // etc. etc.
}

这将通过确保导出的函数名称在导入时没有损坏来修复链接错误。

于 2013-04-22T20:37:43.243 回答
0

尝试在以下位置包含 *.lib 文件的路径:

链接器->常规->附加库目录

于 2013-04-22T20:17:57.237 回答