首页 > 其他分享 >CMakeLists.txt --- 导入接口库(预编译库)

CMakeLists.txt --- 导入接口库(预编译库)

时间:2024-05-04 12:55:25浏览次数:19  
标签:CMakeLists set FFMPEG LIB --- so PATH txt ffmpeg

以接口库的方式导入预编译库

cmake_minimum_required(VERSION 3.9)

project(test)

set(CMAKE_BUILD_TYPE Debug)

set(CMAKE_C_FLAGS "$ENV{CFLAGS} -O2 -Wall -pthread ")
set(CMAKE_CXX_FLAGS "$ENV{CFLAGS} -O2 -Wall -pthread -std=c++11 -std=gnu++11")

#设置module的查找路径
#list(APPEND CMAKE_MODULE_PATH "/your/module/path")
#找module,找不到报错
#find_package(ffmpeg REQUIRED)

#######################################接口库设置#######################################
#设置预编译库的路径
set(FFMPEG_LIB_PATH ${PROJECT_SOURCE_DIR}/external/ffmpeg/prebuild/lib/${CMAKE_SYSTEM_PROCESSOR}/linux/lib64)
#添加需要的库
set(FFMPEG_LIBS
"\
${FFMPEG_LIB_PATH}/libavfilter.so;\
${FFMPEG_LIB_PATH}/libavformat.so;\
${FFMPEG_LIB_PATH}/libavcodec.so;\
${FFMPEG_LIB_PATH}/libavutil.so;\
${FFMPEG_LIB_PATH}/libswresample.so;\
${FFMPEG_LIB_PATH}/libswscale.so;\
${FFMPEG_LIB_PATH}/libavdevice.so\
")

#x86_64平台编译的ffmpeg依赖libx264-dev libx265-dev库
string(FIND "${CMAKE_SYSTEM_PROCESSOR}" "x86_64" NEED_X264)
if(NEED_X264 GREATER -1)
    string(APPEND FFMPEG_LIBS ";${FFMPEG_LIB_PATH}/libx264.so;${FFMPEG_LIB_PATH}/libx265.so")
endif()
#指定接口库的名字
add_library(ffmpeg INTERFACE IMPORTED GLOBAL)
#设置接口库指向哪些预编译库
set_target_properties(ffmpeg PROPERTIES
INTERFACE_LINK_LIBRARIES
"${FFMPEG_LIBS}"
)
#设置接口库包含的头文件
set_target_properties(ffmpeg PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES
"${PROJECT_SOURCE_DIR}/external/ffmpeg/prebuild/include"
)
#######################################接口库设置#######################################

add_definitions(-fpermissive)

add_executable(haha main.cpp)

target_link_libraries(haha
                      ffmpeg)

 

标签:CMakeLists,set,FFMPEG,LIB,---,so,PATH,txt,ffmpeg
From: https://www.cnblogs.com/linxisuo/p/18172197

相关文章

  • python - Counter简单使用
    统计元素数量,并返回字典,键为元素,值为个数fromcollectionsimportCounterlst=['a','b','c','d','a','b','a','c','c','c']dic=Counter(lst)print(dic)#Counter({'c......
  • Razavi - RF Microelectronics的笔记 - Current-Driven Passive Mixer
    Onpage367,whilediscussingaboutcurrent-drivenpassivemixer,thereisthissaying:theswitchesinFig.6.39(b)alsomixthebasebandwaveformswiththeLO,deliveringtheupconvertedvoltagestonodeA.Iamquiteconfusedonwheredoesthiswave......
  • CF-797-E-根号分治
    797-E题目大意给定一个长为\(n\)序列\(a\),有\(q\)次询问:给定\(p,k\),你需要反复执行操作\(p=p+a_p+k\),直到\(p>n\)为止,问你要执行多少次操作。Solution考虑两种思路:1、暴力回答询问,每次反复模拟操作,直到\(p>n\)为止,时间复杂度\(O(q·\frac{n}{k})\)。2、预处理出......
  • 试了下playground-续7
    第六回,FUNWITHIMAGES--ASCIIART这一阵是算不上难度的了,也不怪,是第二章的第一节,就是换个类型出个接引题。代码大致分析清楚了,argparse是熟库了,在这里使用上也简单,就保留了。就源码做了删减,参数也调整了,像cols选择100而不是80,scale实测0.43-0.45都可,这里需要说明的是等宽和非......
  • Django - 探究CBV视图
    目录数据显示视图基础视图TemplateView数据显示视图基础视图TemplateView视图类TemplateView是所有视图类里最基础的应用视图类,开发者可以直接调用应用视图类,它继承多个父类classTemplateView(TemplateResponseMixin,ContextMixin,View):"""Renderatemplate......
  • #交互,dp#洛谷 7998 [WFOI - 01] 猜数(guess)
    题目传送门分析首先要搞清楚,交互库的自适应会让区间长度尽可能增大(答案自适应)也就是说,如果现在区间为\([l,r]\),你选取的区间为\([l',r']\),那么交互库会让你的区间变成\([l,r'-1]\)和\([l'+1,r]\)中区间更长的那一个,不妨枚举这个长度设\(dp[i]\)表示区间长度为\(i\)......
  • Redis官方开源的可视化管理工具 - RedisInsight
    前言今天大姚给大家推荐一款Redis官方开源的可视化管理工具:RedisInsight。Redis介绍Redis(RemoteDictionaryServer)是一个使用C语言编写的,开源的(遵守BSD协议)高性能的、支持网络、可基于内存亦可持久化的日志型、Key-Value的NoSQL数据库。工具介绍RedisInsight是......
  • Python 潮流周刊#49:谷歌裁员 Python 团队,微软开源 MS-DOS 4.0
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了12篇文章,12个开源项目,2则视频,赠书5本《Hello算法》。重......
  • ABAP-MB56字段增强
    MB56增强字段,效果如下:  实施步骤:1、在显示结构ALV_TREE_CHVW中附加所需要增强字段 2、TCODE:SE19实施新BADI:ES_BATCH_WHERE_USED_LIST,在方法COMPLETE_BWUL_MAINTAIN下补充字段相应取数逻辑即可,显示数据存储于内表CT_SHADOW。 ......
  • Ubuntu/Linux系统中的multi-user.target
    相关:https://www.cnblogs.com/devilmaycry812839668/p/17999041multi-user.target是Linux系统中systemd的一个目标。它表示系统已完成引导过程,并准备好供多个用户登录和使用系统。该目标通常包括在多用户环境中进行正常系统操作所需的服务和资源。RunLvlTargetU......