0

我一直在尝试将 FFMPEG 静态库链接到 c++ 环境中的 Visual Studio 2012。但我收到以下错误。

  • 错误 1 ​​错误 LNK1104: 无法打开文件 'avcodec.lib' C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\LINK ConsoleApplication5

我的 lib 文件位于 C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib\lib

编译似乎没问题。命令行是

  • /Yu"stdafx.h" /GS /W3 /Zc:wchar_t /I"C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib\include" /Zi /Gm /Od /sdl / fd"x64\Debug\vc110.pdb" /fp:precise /D "WIN32" /D "_D​​EBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MTd /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\" /Fp"x64\Debug\ConsoleApplication5.pch"

主要问题似乎是在链接阶段,我无法让 VS2012 找到我的 ffmpeg .lib 文件

链接器命令行如下:

  • /OUT:"C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\x64\Debug\ConsoleApplication5.exe" /MANIFEST /NXCOMPAT /PDB:"C:\Users\username\Documents\Visual Studio 2012\ Projects\ConsoleApplication5\x64\Debug\ConsoleApplication5.pdb" /DYNAMICBASE "avcodec.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" " shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X64 /OPT:NOREF /INCREMENTAL /PGD:"C:\Users\用户名\Documents\Visual Studio 2012\Projects\ConsoleApplication5\x64\Debug\ConsoleApplication5.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Debug\ConsoleApplication5.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"/LIBPATH:C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib \lib" /TLBID:1

我无法弄清楚为什么链接器无法找到我的 ffmpeg lib 文件,即使它们物理上位于 /LIBPATH 区域 - c:...\vs12...\ExtLib\lib

4

2 回答 2

0

您的 LIBPATH 看起来不正确 - 如果路径包含空格,则应该这样引用:

/LIBPATH:"C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib\lib"

您似乎在引号内有一个额外的 LIBPATH(在下面的星号中)

/LIBPATH:"**/LIBPATH:**C:\Users\username\Documents\Visual Studio 2012\Projects\ConsoleApplication5\ConsoleApplication5\ExtLib\lib"

于 2013-06-20T15:01:52.817 回答
0

非常感谢!它有助于解决问题。最重要的一步是在附加依赖项选项中添加lib文件的绝对路径。我现在已经对移植它需要遵循的步骤进行了全面而详细的报告。如果有人需要,请在此处找到。[链接](http://ramu492.b​​logspot.in/2013/06/porting-ffmpeg-on-to-winodws7-and.html

于 2013-06-29T10:21:48.240 回答