vs2013编译ffmpeg之⼆CMake
很多ffmpeg依赖的第三⽅库都是⽤cmake作为构建系统的,主要的好处是可以跨平台编译。详细信息及使⽤⽅法请。
编译ffmpeg所依赖的部分第三⽅库时使⽤的是cmake version 3.11.2,cmake安装完毕后,就已经将加到环境变量⾥⾯了,
可以直接在msys终端下执⾏cake命令:
$ which cmake
/c/Program Files/CMake/
使⽤⽅法
cmake -G "Visual Studio 12 2013" source
参数"Visual Studio 12 2013",这个名称是固定的(请参考):
vs2010:Visual Studio 10 2010
vs2012:Visual Studio 11 2012
vs2013:Visual Studio 12 2013
vs2015:Visual Studio 14 2015
source是源代码⽬录,下⾯必须有⽂件。
遇到的错误
–debug-output –trace 可以打印很多信息(debug、trace前⾯是两个横杠),有助于查问题。
对于cmake产⽣的MSVC⼯程,如果代码的路径变了,需要⽤cmake重新⽣成。重新⽣成前需要将源代码⽬录下的、CMakeFiles⽬录删除,不然很多变量都会使⽤⾥⾯的。
下⾯这个错误:
节点 1 上的项⽬“E:\MinGW\msys\1.0\home\AA\ffmpeg_MSVC\contribute\MSVC\x265_20160531\x265\build\vc12-x86\CMakeFiles\3.6.0-rc3\CompilerIdC E:\MinGW\msys\1.0\home\AA\ffmpeg_MSVC\contribute\MSVC
\x265_20160531\x265\build\vc12-x86\CMakeFiles\3.6.0-rc3\CompilerIdC\CompilerIdC 已完成⽣成项⽬“E:\MinGW\msys\1.0\home\AA\ffmpeg_MSVC\contribute\MSVC\x265_20160531\x265\build\vc12-x86\CMakeFiles\3.6.0-rc3\CompilerIdC
cmake如何使用是因为cmake命令⾥⾯的generator写的不对,应该是:
cmake -G "Visual Studio 12 2013" ..\\..\\source
同⼀个⽬录只能⽤cmake产⽣⼀种编译系统⽂件,即不能在同⼀个⽬录下⽤cmake产⽣makefile和MSVC的sln⽂件,执⾏多次也不⾏。⽤cmake产⽣sln⽂件后,再执⾏cmake命令(不带参数),也不能产⽣makefile。会报下⾯的错误:
$ cmake -G "MSYS Makefiles" ./
CMake Error: Error: generator : MSYS Makefiles
Does not match the generator used previously: Visual Studio 122013
重复执⾏cmake,需要删除源代码⽬录下的、CMakeFiles⽬录。
cmake中使⽤pkg-config检测库⽂件
C:\Program Files\CMake\share\cmake-3.11\ake中的规则就是使⽤pkg-config来检测库⽂件和头⽂件
的。同样可以⽤“export PKG_CONFIG_PATH=”命令来指定.pc⽂件的路径:
export PKG_CONFIG_PATH=path_of_pc; cmake ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论