【发布时间】:2019-03-16 16:20:04
【问题描述】:
我正在尝试使用 docker 构建 QT 应用程序。我有 Visual Studio 2015 构建工具和 QT 5.11.2 作为基础 Docker 映像。当我尝试 docker build QT 应用程序时,我收到此错误。
C:\Qt\5.11.2\msvc2015_64\include\QtCore/qglobal.h(45):致命错误 C1083:无法打开包含文件:'type_traits':没有这样的文件或 目录
当我检查这个文件'type_traits'时,在docker里面它存在于这个路径中:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include
docker build 在这一步失败:
RUN C:\\Qt\\Tools\\QtCreator\\bin\\jom.exe
这个命令RUN ["C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat", "x86_amd64"]设置环境变量,如何验证dockerfile中其余的RUN命令是否仍然存在?
以下是我的 docker 文件:
#My base docker image containing QT5.11.2 and Visual build tools 2015
FROM qt
COPY ["./", "C:/app"]
RUN $env:PATH ='C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin;' + $env:PATH;\
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine);
RUN $env:PATH ='C:\Qt\5.11.2\msvc2015_64\bin;' + $env:PATH;\
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine);
RUN $env:PATH ='C:\Qt\Tools\QtCreator\bin\jom.exe;' + $env:PATH;\
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine);
RUN $env:PATH ='C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include;' + $env:PATH;\
[Environment]::SetEnvironmentVariable('PATH', $env:PATH, [EnvironmentVariableTarget]::Machine);
WORKDIR C:\\app
RUN ["C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat", "x86_amd64"]
RUN qmake app.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
RUN C:\\Qt\\Tools\\QtCreator\\bin\\jom.exe qmake_all
RUN C:\\Qt\\Tools\\QtCreator\\bin\\jom.exe
RUN C:\\Qt\\Tools\\QtCreator\\bin\\jom.exe install
RUN mkdir dist\debug_build\app_dist
RUN xcopy app_dist\dist_redist\*.* dist\debug_build\app_dist /E /Y >NUL
CMD cmd
【问题讨论】:
标签: c++ qt docker visual-c++ qt5