• [Delphi]DCC32自动编译目标项目无法生成DCU的解决方案


    最近为方面公司内部配置管理,所有代码提交到svn后,由CM来生成程序。
    考虑到CM的能力水平,只能用批处理帮其自动编译与打包。
    因驱动都是用Delphi写的,就给采用DCC32来编译。
     
    原目录结构如下:
    +build
    |    |__build.cmd   编译脚本
    |
    +doc
    |
    +lib
    |
    +src
        |__sample.dpr  目标项目
     
    因自动编译脚本放在build目录下,出现问题如下:
    1、外部Lib能自动生成dcu;
    2、目标项目sample.dpr不能生成dcu,直接报无法找到 ***.dcu的错误。
     
     
    解决方案:
     
    1、将build.cmd移动到src目录下
    +build
    |
    +doc
    |
    +lib
    |
    +src
        |__build.cmd   编译脚本
        |__sample.dpr  目标项目
     
     
    2、build.cmd脚本如下:
     
    ::==========================================================
    ::通过注册表查找dcc32的路径,这里是Delphi2007版本的
    for /f "tokens=2,*" %%i in ('reg query "HKCUSoftwareBorlandBDS5.0" /v "RootDir"') do (
    set app_dir=%%j
    )
    IF defined q (echo %q%) else (set q=0)
     
    set compiler=%app_dir%binDCC32.EXE
     
    "%compiler%" sample.dpr -m
     
    IF %ERRORLEVEL% NEQ 0 goto error
     
    :success
    echo "驱动编译成功!"
    IF %q% NEQ 1 pause
    goto end
     
    :error
    echo "驱动失败。"
    IF %q% NEQ 1 pause
    goto end
     
    :end
    rem 直接返回
    ::==========================================================
     
     
    DCC32 参数说明
     
    选项    描述
    Aunit=alias 设置单元别名
    B      编译所有单元
    CC     编译控制台程序
    CG     编译图形界面程序
    Ddefines  编译条件符号定义
    Epath    可执行文件输出路径
    Foffset   查找运行期间错误
    GD     生成完整.Map文件
    GP     生成.Map文件Public段
    GS     生成.Map文件Segment段
    H      输出提示信息
    Ipaths   文件包含路径
    J      生成.Obj目标文件
    JP     生成C++类型.Obj目标文件
    Kaddress  Set image base address
    LEpath   包.BPL文件输出路径
    LNpath   .dcp文件输出路径
    LUpackage  使用运行期间包列表
    M      编译有改动的源文件
    Npath    dcu/dpu文件输出目录
    Opaths   .Obj文件(汇编目标代码文件)路径
    P      按8.3格式文件名查找
    Q      安静模式
    Rpaths   资源文件(.RES)路径
    TXext    目标文件扩展名
    Upaths   单元文件路径
    V      为Turbo Debugger生成调试信息文件
    VN     以.Giant格式生成包含命名空间的调试信息文件(将用于C++Builder)
    VR     生成调试信息文件.rsm
    W      输出警告信息
    Z      Disable implicit compilation
    $directive Compiler directives
    --Help   显示编译选项的帮助。同样的,如果你在命令行单独输入dcc32,也会显示编译选项的帮助。
    --version  显示产品名称和版本
  • 相关阅读:
    Android Studio 打包生成apk
    找水王
    关于搜狗输入法的用户体验评价
    c语言函数的嵌套使用和矩阵运算
    人月神话阅读笔记02
    第一阶段冲刺意见评论汇总
    高校表白App-团队冲刺第十天
    高校表白App-团队冲刺第九天
    高校表白App-团队冲刺第八天
    人月神话阅读笔记01
  • 原文地址:https://www.cnblogs.com/jijm123/p/14078312.html
Copyright © 2020-2023  润新知