网络上的东西真难找到全的,断续摸索了半天,终于实现了。
为什么要命令行呢,主要是子工程有10几个,然后subdirs不能好好的管理输出、拷贝dll/h问题,所以最终还是采用命令行方式来,事实证明这个一次搞完以后,以后最省事。
我这里直接发解决方案,共2个bat文件。
1、在 pro 目录,使用如下bat初始化环境,包括qt和vc的
@echo off echo 设置qt环境 set PATH=D:\Qt\Qt5.14.1\5.14.1\msvc2017\bin;D:\Qt\Qt5.14.1\Tools\QtCreator\bin\;%PATH% rem cd /D D:\Qt\Qt5.14.1\5.14.1\msvc2017 echo 设置vc环境vcvarsall.bat @cmd /k call "d:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 %*
2、然后在上一个bat打开的cmd窗口中,直接调用下面编译的bat即可
@echo off rem 输出总目录 set BUILD_DIR=./build rem 版本,带任意参数就是release,否则默认为debug版本 if "%1"=="" ( @echo 正在构建 Debug 版本。。。 set DEBUG_OR_RLS=Debug ) else ( @echo 正在构建 Release 版本。。。 set DEBUG_OR_RLS=Release ) qmake AppLib1.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug" -o %BUILD_DIR%/Makefile set "err=%errorlevel%" if "%err%"=="0" ( echo qmake成功了 ) else ( echo qmake失败! goto nowExit ) rem 进到build目录直接使用nmake debug即可,否则使用 /f Makefile形式 cd %BUILD_DIR% rem nmake /f ./build/Makefile qmake_all nmake %DEBUG_OR_RLS% set "err=%errorlevel%" if "%err%"=="0" ( echo nmake成功了 ) else ( echo nmake失败! goto nowExit ) :nowExit cd ..
五码高清照: