统一开发环境,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

  

原文地址:https://www.cnblogs.com/cui-shaoqiang/p/5524965.html