CMake 简单学习及 AV1, DAV1D的WINDOWS编译

一,cmake 接口可为大小写(project set add_library add_executable target_link_libraries add_definitions,add_subdirectioy,include_directories 
二,   但关键字参数必须为大写(-D  VERSION SHARED)。
三,cmake_minimum_required一般须入在一个CMAKE文件的开头,规定最小可用版本。
四,aux_source_directory(. DIR_SRCS)  //将当前目录下所有源文件命名为 DIR_SRCS

五,cmake可以通过可配置的头文件来产生实际的头文件,如下面的可配置头文件hello.h.in,里面@@引用的变量可以通过CMakeLists.txt来设置,
最后通过cmake来替换hello.h.in文件中的变量并生成hello.h内容。

hello.h.in 中#define VERSION_MAJOR @VERSION_MAJOR@
CMakeLists.txt中
set(VERSION_MAJOR 1)
configure_file(
    "${PROJECT_SOURCE_DIR}/hello.h.in"
    "${PROJECT_BINARY_DIR}/hello.h"
)

# 是否使用自己的 MathFunctions 库
option (USE_MYMATH
       "Use provided math implementation" ON)
# 是否加入 MathFunctions 库
if (USE_MYMATH)
  include_directories ("${PROJECT_SOURCE_DIR}/math")
  add_subdirectory (math)  
  set (EXTRA_LIBS ${EXTRA_LIBS} MathFunctions)
endif (USE_MYMATH)

六,AV1编译

http://lazybing.github.io/blog/2018/10/15/av1-startup/  Av1解码详解(一)


1,aom的av1编译,使用CMAKE,

2,AOM用CMAKE生成工程时需要用到PERL(实用报表提取语言),下载安装即可。
3,CMAKE打开界面,选择AV1目录,选择或定义VS工程文件子目录,
正常情况下点一次Configure,会提示您选择VS版本,必须是系统已经安装的版本,我选了VS2013,确定。
完成后需要再点一次,如果有报错会弹出提示框,没有说明正常,
Configure正常的情况下,Generate使能,这时点击下它应该就可以生成工程文件。
点Open Project按钮就可进入工程。
编译成功,未遇到问题。

七,DAV1D编译 必须用Meson

dav1d 编译方法:最新的Meson中已包含Ninja所以只下载安装Meson即可。下载路径:https://mesonbuild.com
安装meson 安装包内应含ninja 默认安装即可。
meson不支持VS2013 我使用了VS2017,成功了。
编译选项:
meson --buildtype debug --backend vs2017 ./ vs2017
生成了15个工程,两个工程编译失败,不影响DAV1D的使用。
1,checkasm工程编译失败错误如下:
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    LNK1104    无法打开文件“src\25a6634@@dav1d@sha\cdef.obj”    checkasm    D:\dfb_work\VLC_0525\vlc-3.0.6\tarballs\dav1d-0.1.0\dav1d-0.1.0\vs2017\tests\LINK    1    
2,RUN_TESTS工程编译失败如下:
严重性    代码    说明    项目    文件    行    禁止显示状态
错误    MSB3073    命令“setlocal
"C:\Program Files\Meson\meson.exe" "test" "--no-rebuild" "--print-errorlogs"
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd”已退出,代码为 2。    RUN_TESTS    d:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets    138    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值