美文网首页
cmake配置

cmake配置

作者: 贝克街的猫大哥呀 | 来源:发表于2018-07-01 00:33 被阅读0次

    首先我们将ffmpeg所有头文件都导入项目。

    头文件全位于include中。那具体的实现类呢,在LIBS中:

    那么如何将这些目录是怎么项目关联起来呢,就是在CMAKE中配置:

    这里话就是让项目明白,你导入的头文件位于include文件夹中。

    因此,在CPP中导入其它的头文件,才不会报错,如:

    这里是生成项目时就生成的CPP文件。在此类中导入其它头文件,就会自动从include这个文件夹中去找到 libavcodec这个文件里的头文件。

    继续回到CMAKE,这里重点讲下CMAKE的配置:

    这里没什么好说的,生成CMAKE时就自动会有此代码,这里旨在将 native-lib 这个类生成一个动态库存。 native-lib直接与JAVA交互。

    但实际上,native-lib中,还会引用到其它库,如这里的ffmpeg,该如何配呢。那就是再写一个add_library:

    这里是先set了一个FF变量,将路径进行了一个确定。下面的两句是固定写法,先命名了一个库,就是avcodec,这里可以取任意名字,第三行是将这个名字和具体的动态库路径关联起来。

    还有一个点,就是 {ANDROID_ABI}  ,这个变量是哪里来的呢,这里是build配置中定义的,如:

    在build中的配置,一般只需要自己加上这个Filters就行了,其它的都会自动生成。

    再讲回CMAKE,我们已经导入了需要的动态库avcodec,那么怎么将这个库和我们直接交互的cpp关联起来呢:

    就要用到target-link_libraries这个语句,第一行 native-lib是我们直接交互的库,第二行开始,如这里的avcodec,就是将其打包进native-lib生成的动态库中! 这样就进行一个动态库的合并!

    也就是说,我们配置CMAKE的目的,就是最终会生成一个native_lib的动态库,这个动态库里就包括了avocec这个动态库,也就是说,当生成后,我们就可以去掉CMAKE这个编译环节,免得每次RUN的时候都要重新编译这个动态库浪费时间!

    相关文章

      网友评论

          本文标题:cmake配置

          本文链接:https://www.haomeiwen.com/subject/hqgxuftx.html