zoukankan      html  css  js  c++  java
  • DDK Build的DIRS和SOURCE文件

    DDK Build编译的时候,使用3个文件来描述被编译的源码,其中SOURCES和Makefile是必须的,而DIRS则只在划分目录的时候有用。Makefile在这里作用并不大但是必须和SOURCES文件成对出现,关键还是SOURCES和DIRS文件。

    SOURCES文件用于描述其所在目录下,有哪些文件参与编译,编译的结果应该是什么(是一个lib还是一个sys?),输出目录在哪里,要传递给编译器的各种定义和选项分别是什么,等等。这里有一个概念需要特别的注意,就是由一个SOURCES文件描述的其实就是一个单独的小工程,Build最后会参照SOURCES文件的设置,产生一个指定的目标文件(dll ? lib ? exe ? sys ? 都有可能,完全依赖于SOURCES文件的写法)。

    DIRS文件用于描述,在当前目录下,需要被编译的子目录有哪些。注意!DIRS文件和SOURCES文件不能共存在同一个目录下。

    举例:工程DDKTest,由3个子模块和一个主模块构成,目录结构如下:

    DDKTest
    ├─Mod_A
    ├─Mod_B
    ├─Mod_C
    └─Mod_Main
    └─dirs      //这里必须有一个dirs文件,告诉DDK的build工具, 当前目录下有哪些文件夹参与编译


    dirs的内容是这样:
    DIRS = Mod_A Mod_B Mod_C Mod_Main
    4个文件夹名字之间以空格间隔,也可以使用 连行符分隔成多行去书写。

    在 Mod_A ,Mod_B,Mod_C,Mod_Main 这4个文件夹下,分别含有一个SOURCES文件,每一个用于
    告诉Build,自身目录内有哪些文件参与编译,在编译时传递给编译和链接器的参数又是什么,最后要生
    成的目标文件是什么类型,等等。

    在这个例子中,Mod_A、Mod_B、Mod_C 都是子模块,因此我让他们都生成为lib文件,也就是静态库
    文件。而对于Mod_Main ,由于是主模块,因此我们用它生成.sys文件,但是在Mod_Main的
    SOURCES文件中,我们必须告诉Build,其他3个子模块生成的lib文件在哪里,并且要求链接器在链接时找到这3个子模块生成的lib,这样才能完整的编译完整个DDKTest项目。

    我当时在最后一步这里没搞明白,看看都编译通过生成了6个lib,最后一个主模块一编译挺ok ,一链接一大堆的各种找不到,很是郁闷的。

    总结下,其实就是将每个模块都单独的编译成一个lib,最后由主模块在生成目标文件时,和所有已编译好的lib进行链接即可。

  • 相关阅读:
    UITextView 实现placeholder的方法
    15个重要的Android代码
    Java 网络文件传输
    iPhone打包步骤
    (转)android开发中WebView的使用(附完整程序)
    来自老外用jquery实现的内容隐藏代码
    AJAX实现页面选项卡、隔行换色、弹出层功能代码
    JavaScript防FLASH效果的下拉菜单导航代码
    CSS打造全兼容(IE6、IE7、FF)的下拉导航菜单
    很简单的CSS黑色线条滑动门代码
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693362.html
Copyright © 2011-2022 走看看