統一開發環境,Qt工程轉換成VS工程的便捷工具

2021-09-27 03:18:07 字數 2689 閱讀 5940

qt工程轉換成vs工程的指令碼工具

問題描述:

當多人用vs配合qt creator進行開發時,有時會遇到將pro檔案轉換成vcxproj檔案後,轉移到其他的pc上,用vs編譯工程出現編譯或鏈結錯誤。

解決方案:

首先,統一開發環境,例如使用vs2010與qt5.5.1。

其次,配置qtdir環境變數,該環境變數為qt creator的安裝路徑,如「c:\qt\qt5.5.1\5.5\msvc2010」(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%%\bin\qmake -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

使用vagrant統一開發環境

簡介 vagrant類似現在很流行的docker 相比起docker打包依賴的方式,vagrant打包的是整個虛擬機器。核心原理 vagrant 會把你配置好的虛擬機器打包成box,通過乙個vagrantfile配置這個虛擬機器的一些行為。其他成員只要使用你的box,就可以獲得統一的開發環境。使用安...

使用vagrant統一開發環境

簡介 vagrant類似現在很流行的docker 相比起docker打包依賴的方式,vagrant打包的是整個虛擬機器。核心原理 vagrant 會把你配置好的虛擬機器打包成box,通過乙個vagrantfile配置這個虛擬機器的一些行為。其他成員只要使用你的box,就可以獲得統一的開發環境。使用安...

使用vagrant統一開發環境

簡介 vagrant類似現在很流行的docker 相比起docker打包依賴的方式,vagrant打包的是整個虛擬機器。核心原理 vagrant 會把你配置好的虛擬機器打包成box,通過乙個vagrantfile配置這個虛擬機器的一些行為。其他成員只要使用你的box,就可以獲得統一的開發環境。使用安...