zoukankan      html  css  js  c++  java
  • VLC 重新编译第三方库的预编译包contrib

    VLC的引用了很多开源的第三方库,均放到VLC目录下的contrib中(本来开始编译是2.1.x以上版本,以前或以后可能会变化),在Windows版本编译中,contrib文件夹中仅仅下载VLC官网上已经编译好的预编译包后解压到该目录下,要修改编译脚本(compile.sh和 contrib/src下的main.mak)为fetch所有第三方包中,下载后开始自动编译(由main.mak和contrib/src/***/rules.mak控制)。

         一旦编译通过,一般来说,在下一次执行VLC编译脚本时,就不会再重新编译第三方包了,因为对于make来说,这些第三方包处于已安装状态,所以一旦修改了这些第三方库文件,就需要重新编译,重新编译前就需要将已安装的包卸载掉,编译脚本通过判断隐藏文件(.包名)和prefix路径下的文件,一旦存在就不需要重新编译(此处为各个包中make install决定),对于开发者来说,只需要在compile.sh(android版为compile-libvlc.sh)中的make contrib 前加上make clean即可,但此处需要注意,不能直接加上make clean,因为clean对于main.mak来说,会连同第三方库源码包都删除掉,而我们只需要删除已安装的文件即可,因此在main.mak中新增一个参数动作cleaninstall,如下:

    installclean:
    -$(RM) $(foreach p,$(PKGS_ALL),.$(p) .sum-$(p) .dep-$(p))
    -$(RM) toolchain.cmake
    -$(RM) -R "$(PREFIX)"

    以上代码可在main.mak中先搜索install:后,在此段后面加上即可,修改完成后,在回到compile.sh(android版为compile-libvlc.sh)中的contrib编译段的make  前加上make cleaninstall,

    接下来,再修改contrib/src下的各个包的rules.mak,让make时,不再重新解压源码(即注释掉download和UNPACK相关的命令)直接make即可。

    其实还可以修改更准确的,比如实现clean指定的某一个第三方包,如以下内容为删除DVD相关的几个库,实现只重新编译这几个库:

    cleandvd:
    -$(RM) "./.dvdcss"
    -$(RM) "./.sum-dvdcss"
    -$(RM) "./.dep-dvdcss"
    -$(RM) "./.dvdnav"
    -$(RM) "./.sum-dvdnav"
    -$(RM) "./.dep-dvdnav"
    -$(RM) "./.dvdread"
    -$(RM) "./.sum-dvdread"
    -$(RM) "./.dep-dvdread"
    # -$(RM) toolchain.cmake
    -$(RM) -R "$(PREFIX)/include/dvdcss/*.*"
    -$(RM) -R "$(PREFIX)/include/dvdnav/*.*"
    -$(RM) -R "$(PREFIX)/include/dvdread/*.*"
    -$(RM) -R "$(PREFIX)/share/doc/libdvdcss/*.*"
    -$(RM) -R "$(PREFIX)/share/doc/libdvdnav/*.*"
    -$(RM) -R "$(PREFIX)/share/doc/libdvdread/*.*"
    -$(RM) "$(PREFIX)/lib/libdvdcss.*"
    -$(RM) "$(PREFIX)/lib/libdvdnav.*"
    -$(RM) "$(PREFIX)/lib/libdvdread.*"
    -$(RM) "$(PREFIX)/lib/pkgconfig/dvdcss.*"
    -$(RM) "$(PREFIX)/lib/pkgconfig/dvdnav.*"
    -$(RM) "$(PREFIX)/lib/pkgconfig/dvdread.*"

  • 相关阅读:
    LeetCode 769. Max Chunks To Make Sorted
    LeetCode 845. Longest Mountain in Array
    LeetCode 1059. All Paths from Source Lead to Destination
    1129. Shortest Path with Alternating Colors
    LeetCode 785. Is Graph Bipartite?
    LeetCode 802. Find Eventual Safe States
    LeetCode 1043. Partition Array for Maximum Sum
    LeetCode 841. Keys and Rooms
    LeetCode 1061. Lexicographically Smallest Equivalent String
    LeetCode 1102. Path With Maximum Minimum Value
  • 原文地址:https://www.cnblogs.com/caibirdy1985/p/4329596.html
Copyright © 2011-2022 走看看