• 统一开发环境,Qt工程转换成VS工程的便捷工具


    QT工程转换成VS工程的脚本工具

    问题描述:

      当多人用vs配合qt creator进行开发时,有时会遇到将pro文件转换成vcxproj文件后,转移到其他的PC上,用vs编译工程出现编译或链接错误。

    解决方案:

      首先,统一开发环境,例如使用vs2010与Qt5.5.1。

      其次,配置QTDIR环境变量,该环境变量为qt creator的安装路径,如“C:QtQt5.5.15.5msvc2010”(win10操作系统)。

      最后,使用qmake工具,将pro文件转换成vcxproj文件。将vcxproj文件中凡是引用qt creator安装路径的地方均用环境变量QTDIR进行替换。    

    需将以下批处理命令复制保存为*.bat文件。在pro目录下双击运行,即实现上述所描述的功能。 

    ::该脚本的功能是将当前文件夹下及其子文件夹下的qt pro文件转换为vs vcxproj文件,
    ::并将所生成的vcxproj文件中qt的绝对路径替换成QTDIR环境变量
    @echo off
    if "%QTDIR%"=="" (
        @echo "QTDIR" environment variable is not configured
        pause
        exit
    )
    
    
    set bootDir=%cd%
    set tagName=temp
    set tagSubEx=bat
    set file=%tagName%.%tagSubEx%
    @echo %cd%
    
    
    for /r %%i in (*.pro) DO (
        @echo %%i
        call :create %%i
    )
    
    
    pause
    cd %bootDir%
    set delFile=del.bat
    rem set /a flag=0
    echo @echo off>%delFile%
    rem echo set flag=^0>>%delFile%
    echo for /r %%%%j in (*%file%) DO (>>%delFile%
    echo call :delete %%%%j>>%delFile%
    echo )>>%delFile%
    rem echo set /a flag+=^1>>%delFile%
    
    
    echo :delete>>%delFile%
    echo del %%1>>%delFile%
    call %delFile%
    
    
    cd %bootDir%
    del %delFile%
    exit
    
    
    :wait
    if %flag% equ 1 (
    @echo flag=%flag%
    pause
    del %delFile%
    exit
    ) else (
    @echo this is working
    pause
    goto wait
    )
    
    
    :create
    cd %~dp1
    echo @echo off>%file%
    echo set expQTDIR=%%QTDIR%%>>%file%
    
    
    echo %%QTDIR%%inqmake -tp vc>>%file%
    
    
    echo set tagEx=vcxproj>>%file%
    echo for /r %%%%j in (*.vcxproj) DO (>>%file%
    echo call :replace %%%%j>>%file%
    echo )>>%file%
    
    
    echo :replace>>%file%
    echo setlocal Enabledelayedexpansion>>%file%
    echo ren %%1 a.%%tagEx%%>>%file%
    echo for /f "tokens=*" %%%%s in (a.%%tagEx%%) do (>>%file%
    echo set var=%%%%s>>%file%
    echo set var=!var:%%expQTDIR%%=%%%%QTDIR%%%%!>>%file%
    echo echo !var!^>^>b.%%tagEx%%>>%file%
    echo )>>%file%
    echo del %%~nx1>>%file%
    echo ren b.%%tagEx%% %%~nx1>>%file%
    echo del a.%%tagEx%%>>%file%
    echo endlocal>>%file%
    echo exit>>%file%
    start %file%
    
    
    :continue

      

  • 相关阅读:
    Java--从键盘读取
    java--mkdirs()
    Java--正则表达式
    java--利用Filereader BufferedReader读取文本文档
    java--lambda表达式和动态数组arraylist的forEach方法
    substring 方法
    ES 字符串操作
    slice方法
    process.env.NODE_ENV
    像素
  • 原文地址:https://www.cnblogs.com/cui-shaoqiang/p/5524965.html
Copyright © 2020-2023  润新知