首次使用Qt Creator运行项目时Makefile报错的解决咨询
搞定Qt Creator构建时的Makefile目标模式错误
嘿,我帮你分析下这个问题——你遇到的是Qt Creator生成的Makefile里残留了没解析完的JS模板变量,导致make直接懵了。下面给你几个靠谱的解决办法:
1. 先清干净旧文件再重来
- 先关掉Qt Creator,找到项目文件夹,把那个名字奇怪的
%{JS: Util.asciify("build-test-Desktop-Debug")}目录删掉 - 重新打开Qt Creator,点顶部菜单栏的
Build→Clean All,把旧的构建缓存清干净 - 接着点
Build→Run qmake,让Creator重新生成正确的Makefile - 最后再点运行试试
2. 检查构建路径的配置
- 点开左侧的项目面板,选中你的
Desktop套件 - 看看
Build Directory那栏,估计是这里的模板变量没解析成功,才生成了奇怪的路径 - 你可以手动改成一个简单的路径,比如
../build-test-Debug,别用那些JS模板语法,改完再重新跑qmake和构建
3. 确认Qt Creator和Qt版本是否兼容
- 你用的是Qt 4,有些新版本的Qt Creator对Qt 4的模板支持可能有bug
- 要是可以的话,要么换个适配Qt 4的Creator版本,要么把项目升级到Qt 5/6(如果项目允许的话)
4. 手动改Makefile救急(临时方案)
如果上面的方法暂时不管用,你可以直接改Makefile:
- 打开出错的Makefile,找到第100行和106行
- 把里面的
%{JS:\ Util.asciify(build-test-Desktop-Debug)}换成实际的构建目录名(就是Creator生成的那个目录,去掉模板语法,比如build-test-Desktop-Debug) - 保存后再执行
make就能跑起来了
为啥会出这问题?
说白了就是Qt Creator在生成构建路径的时候,没把Util.asciify()这个JS模板表达式解析成正常的目录名,反而把原始模板字符串直接写到Makefile里了。make根本不认识这种语法,所以就报错说目标模式不对啦。
内容的提问来源于stack exchange,提问作者user9160689
相关产品推荐
相关产品推荐

