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

2023-07-06 14:15:56 浏览数 (2)

统一开发环境,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目录下双击运行,即实现上述所描述的功能。 

代码语言:javascript复制
::该脚本的功能是将当前文件夹下及其子文件夹下的qt pro文件转换为vs vcxproj文件,
代码语言:javascript复制
::并将所生成的vcxproj文件中qt的绝对路径替换成QTDIR环境变量
代码语言:javascript复制
@echo off
if "%QTDIR%"=="" (
    @echo "QTDIR" environment variable is not configured
    pause
    exit
)
 
set bootDir=�%
set tagName=temp
set tagSubEx=bat
set file=%tagName%.%tagSubEx%
@echo �%
 
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>�lFile%
rem echo set flag=^0>>�lFile%
echo for /r %%%%j in (*%file%) DO (>>�lFile%
echo call :delete %%%%j>>�lFile%
echo )>>�lFile%
rem echo set /a flag =^1>>�lFile%
 
echo :delete>>�lFile%
echo del %%1>>�lFile%
call �lFile%
 
cd %bootDir%
del �lFile%
exit
 
:wait
if %flag% equ 1 (
@echo flag=%flag%
pause
del �lFile%
exit
) else (
@echo this is working
pause
goto wait
)
 
:create
cd %~dp1
echo @echo off>%file%
echo set expQTDIR=%%QTDIR%%>>%file%
 
echo %%QTDIR%%binqmake -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

0 人点赞