Qt编译报错“Error: cannot open ...main.obj.10836.32.jom for write” 的解决方法

最近,编译QT项目产生如下问题:

Error: cannot open C:\Users\(用户名)\AppData\Local\Temp\main.obj.10836.32.jom for write

解决方法一

我们发现Windows登录的用户名是 中文的,如果不觉得麻烦的话,建议先创建一个英文的 用户账户,然后登录,然后重新编译,解决! Qt项目对 中文路径 的支持比较弱,实在是很烦人!!!

解决方法二

菜单-》选项-》构建和运行:

接下来就运行成功啦!

我们了解一下什么是 make ,什么是jom ?

GUN make是Linux环境下的一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。

makefile在一些简单的工程完全可以人工编写,但是当工程非常大的时候,手写makefile也非常麻烦。如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用不同的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

类似于 Make ,有其他的公司按照自己的标准构造了一套make工具,QT 的 qmake ,微软 MS nmake,BSD Make(pmake),Makepp,等等

qmake 是为 Qt 量身打造的,使用起来非常方便,但是cmake功能比qmake强大。 一般的Qt工程直接使用qmake就可以了,cmake的强大功能一般人是用不到的。qmake根据项目文件中的信息生成Makefile。项目文件由开发人员创建,通常很简单,但是可以为复杂项目创建更复杂的项目文件。qmake包含其他支持Qt开发的功能,自动包括moc和uic的构建规则。qmake还可以为Microsoft Visual Studio生成项目,而无需开发人员更改项目文件。

nmake是Microsoft Visual Studio中的附带命令,需要安装VS, 使用 NMAKE,必须在开发人员命令提示窗口中运行它。 开发人员命令提示窗口具有为工具、库设置的环境变量,并且包括在命令行上生成所需的文件路径。

nmake不会像GNU make那样利用所有可用的处理能力。 jom是nmake的克隆,可支持并行执行多个独立命令 ,类似于GNU make的-j命令行开关 。它可以同时使用任意数量的进程。,当使用它时,在具有Qt构建的四核计算机上,花费的时间是使用nmake的时间的一半。

您还可以使用-j命令行参数来设置并发进程数:

C:\\Qt\\Qt5.1.1\\Tools\\QtCreator\\bin\\jom.exe -j 12 -f Makefile

12代表您要使用的核心数。我使用12,因为我有12个线程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员乐逍遥

如果你觉得帮助了你,支持一下!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值