zoukankan      html  css  js  c++  java
  • windows下VC6工程产品化

    最近开始,在使用VC6开发时,喜欢使用写个批处理来进行产品的出厂编译,贴出来,希望对大家有所帮助。

    windows下vc6工程产品化


    目标:

    使用一个批处理命令,编译并组织出厂产品。

    优点:
    实现出厂编译自动化。
    当工程关联很多或目录结构复杂时可以减少出厂成本和人工的误操作。

    实例:
    下面是一个make_win32.bat的实例。
    ----------------------------------------------------------------------------------
    :创建目录
    rd /S /Q "product""
    if errorlevel 1 pause
    md "product""
    if errorlevel 1 pause
    :编译分词java接口dll
    :设置环境变量
    :当前VC安装路径的路径
    call "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
    if errorlevel 1 pause
    :使用msdev进行编译
    msdev HLSwknl_java"HLSwknl_java.dsp /MAKE "HLSwknl_java - win32 release" /REBUILD
    if errorlevel 1 pause
    :拷贝到产品目录下
    copy /Y HLSwknl_java"Release"HLSwknl_java.dll "product""
    if errorlevel 1 pause
    copy /Y sdk"HLSSplit.dll "product""
    if errorlevel 1 pause
    copy /Y sdk"HLSSplit.dat "product""
    if errorlevel 1 pause
    xcopy /S "hylanda" "."product"hylanda""
    if errorlevel 1 pause
    :拷贝到到测试目录
    xcopy /S "hylanda" "."JavaTest"hylanda""
    if errorlevel 1 pause
    copy /Y HLSwknl_java"Release"HLSwknl_java.dll "JavaTest""
    if errorlevel 1 pause
    copy /Y sdk"HLSSplit.dll "JavaTest""
    if errorlevel 1 pause
    copy /Y sdk"HLSSplit.dat "JavaTest""
    if errorlevel 1 pause
    :编译测试文件
    javac -cp ./JavaTest/ ./JavaTest/hylanda/segment/*.java
    if errorlevel 1 pause
    javac -cp ./JavaTest/ ./JavaTest/SegTest/*.java
    if errorlevel 1 pause
    javac -cp ./JavaTest/ ./JavaTest/SegTest.java
    if errorlevel 1 pause
    pause
    ----------------------------------------------------------------------------------
    若出现多个编译选项,可以编写Makefile文件
    例如Makefile文件编写如下:
    win32:
    call make32.bat
    win64:
    call make64.bat

    ....

    然后可以通过make win32 或 make win64 命令来执行编译产出,这里使用的小伎俩就是在Makefile文件中
    直接call对应的批处理文件,当然,你也可以把批处理中的代码都转移到Makefile文件中,这就随个人喜好啦。

    知识不是力量,运用知识才是力量,各位若有更好的方法,欢迎提出!

    ----------------------------------------------------------------------------------
    附A:MSDEV使用命令:
    E:\allworks\javaInterface\seg_32_window>msdev /?
    Usage:
      MSDEV [myprj.dsp|mywksp.dsw]  - load project/workspace
            [<filename>]            - load source file
            /?                      - display usage information
            /EX <macroname>         - execute a VBScript macro
            /OUT <filename>         - redirect command line output to a file
            /USEENV                 - ignore tools.options.directories settings
            /MAKE [<target>] [...]  - build specified target(s)
                  [<project> - <platform> <configname>]
                  [[<project>|ALL] - [DEBUG|RELEASE|ALL]]
                  /CLEAN            - delete intermediate files but don't build
                  /REBUILD          - clean and build
                  /NORECURSE        - don't build dependent projects
    ----------------------------------------------------------------------------------

    ----------------------------------------------------------------------------------
    附B:DOS下的注释用法
    批处理的段注释有一种比较常用的方法
    程序代码
    goto start
      = 可以是多行文本,
      = 可以包含重定向符号和其他特殊字符
      = 只要不包含 :start 这一行
    :start
    另外,还有其他各种注释形式,比如:
    1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
    2、rem 注释内容(不能出现重定向符号和管道符号)
    3、echo 注释内容(不能出现重定向符号和管道符号)〉nul
    4、if not exist nul 注释内容(不能出现重定向符号和管道符号)
    5、:注释内容(注释文本不能与已有标签重名)
    6、%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
    7、goto 标签 注释内容(可以用作说明goto的条件和执行内容)
    8、:标签 注释内容(可以用作标签下方段的执行内容)
    ----------------------------------------------------------------------------------
  • 相关阅读:
    Elasticsearch--ES-Head--docker版安装
    springboot配置rabbitmq
    springboot开启多线程配置
    Hyper-v安装centos后的网络配置
    阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用
    安装docker-compose
    装饰器
    数据类型操作中的坑 循环删除
    python数据类型:字典dict常用操作
    函数def
  • 原文地址:https://www.cnblogs.com/zhangqingping/p/1417896.html
Copyright © 2011-2022 走看看