• VS2019/VC++单文件编译配置


    由于VS不支持C/C++单文件编译,只是学习或测试用的单个C/C++文件也要建个项目,实在是麻烦,所以一般都是选择系统开始菜单VS自带的开发人员命令提示符,手动输入编译命令,这样就可以单文件编译了,但是也还是麻烦。

    每次需要先打开开发人员命令提示符,然后根据不同的文件路径名输入不同的编译命令,忍了一段时间后,今天终于发现一个比较省心的办法了。

    先了解一下VS的命令行编译选项:

    VS 2019的开发人员命令提示符(使用32位x86本机工具来生成32位x86本机代码的环境)
    目标:%comspec% /k "C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ToolsVsDevCmd.bat"
    起始位置:"C:Program Files (x86)Microsoft Visual Studio2019Community"
    备注:Open Visual Studio 2019 Tools Command Prompt
    
    x86 Native Tools Command Prompt for VS 2019(使用32位x86本机工具来生成32位x86本机代码的环境)
    目标:%comspec% /k "C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvars32.bat"
    备注:Open Visual Studio 2019 Tools Command Prompt for targeting x86
    
    x64 Native Tools Command Prompt for VS 2019(使用64位x64本机工具来生成64位x64本机代码的环境)
    目标:%comspec% /k "C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvars64.bat"
    备注:Open Visual Studio 2019 Tools Command Prompt for targeting x64
    
    x86_x64 Cross Tools Command Prompt for VS 2019(使用32位x86本机工具来生成64位x64本机代码的环境)
    目标:%comspec% /k "C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvarsx86_amd64.bat"
    备注:Open Visual Studio 2019 Tools Command Prompt for targeting x64 with x86-hosted tools
    
    x64_x86 Cross Tools Command Prompt for VS 2019(使用64位x64本机工具来生成32位x86本机代码的环境)
    目标:%comspec% /k "C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvarsamd64_x86.bat"
    备注:Open Visual Studio 2019 Tools Command Prompt for targeting x86 with x64-hosted tools
    ===========================================================================================================================
    Command File命令文件	Host and Target architectures主机和目标体系结构
    ------------------------------------------------------------------------
    vcvars32.bat	使用32位x86本机工具来生成32位x86代码。 
    vcvars64.bat	使用64位x64本机工具来生成64位x64代码。 
    vcvarsx86_amd64.bat	使用32位x86本机跨工具生成64位x64代码。 
    vcvarsamd64_x86.bat	使用64位x64本机跨工具生成32位x86代码。 
    vcvarsx86_arm.bat	使用32位x86本机跨工具生成ARM代码。 
    vcvarsamd64_arm.bat	使用64位x64本机跨工具生成ARM代码。 
    vcvarsall.bat	使用参数来指定主机和目标体系结构,以及SDK和平台选择。

    VS附带的批处理文件实在是够复杂的,200行以上,真看不懂也不想看。我们只要使用就行了。VS的开发环境其实是通过执行一个批处理文件实现的,那么只要在我们的环境里先运行一下就好了。

    下面是我配置的运行环境,也是一个批处理:

    @echo off
    rem 使用vc++编译
    
    if "%~1" =="" goto :CMD
    set fn="%~dpn1"
    set hz="%~x1"
    if %hz%==".c" (goto C) else if %hz%==".cpp" (goto CPP) else (goto :EOF)
    
    :C
    REM 如果文件是*.c,cl编译再运行(/TC将所有文件编译为.c)
    echo %1
    %comspec% /c ""C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvars64.bat" && cl %1 -TC -Fe:%fn%.exe && %fn%.exe"
    rem 必须在每个路径周围添加双引号,并将整个命令括在双引号中
    del /q %fn%.obj
    pause  &&  exit
    goto :EOF
    
    :CPP
    REM 如果文件是*.cpp,cl编译再运行(/TP将所有文件编译为.cpp)
    echo %1
    %comspec% /c ""C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvars64.bat" && cl %1 -TP -EHsc -Fe:%fn%.exe && %fn%.exe"
    del /q %fn%.obj
    pause  &&  exit
    goto :EOF
    
    :CMD
        cmd

    名字随便起一个比如Build,后缀为bat。使用的方法为:直接拖动你要编译的C/C++源文件到这个批处理文件上,就可以实现VC++编译并运行了。

    这样还是有一点小麻烦,如果你使用的是编辑器,比如我用的是EditPlus,可以这样配置:

    设置完毕后,任何时候使用这个编辑器打开一个C/C++源文件,点击上面设置好的按钮就可以实现编译并运行了。

    如果你使用的是GCC,只要将上面批处理的编译命令换一下就可以,如:

    :C
    REM 如果文件是*.c,gcc编译再运行
    echo %1
    gcc %1 -o %fn%.exe  &&  %fn%.exe  &&  pause  &&  exit
    goto :EOF
    
    :CPP
    REM 如果文件是*.cpp,g++编译再运行
    echo %1
    g++ %1 -o %fn%.exe  &&  %fn%.exe  &&  pause  &&  exit
    goto :EOF
  • 相关阅读:
    Qt 之 emit、signals、slot的使用
    qt中的 connect 函数
    进程同步:生产者消费者模型 以及解决方法
    Linux 时间 与 定时器
    Linux 环境编程:errno的基本用法
    Linux 环境编程:dirfd参数 有关解析
    Kubernetes设计理念
    禅道升级
    关闭自动更新
    linux下的特殊模式
  • 原文地址:https://www.cnblogs.com/chengyb/p/14158834.html
Copyright © 2020-2023  润新知