由于某些原因,我们使用 QMAKE 来管理我们的 C++ 开发项目。
好吧,这不是我最喜欢的交叉构建系统,但我必须忍受它......啊,我的问题。
当您使用 INSTALL 目标创建 QMAKE 项目时,生成的 Makefile 始终包含一个看起来相似的
make install
install 目标:
install: install_target FORCE
...
install_target: all FORCE
...
其中
all
目标基本上是构建所有目标...
所以,据我所知。 Qmake 总是重新检查目标是否有更改,并重建相应的目标(如果有)。在我们的一些链接较多的项目中,这会花费大量时间。
有办法阻止这种行为吗?我只是不知道:/
谢谢!
在我的例子中,
Makefile
有每个对象(*.obj
文件)的依赖项列表,例如相关的C或C++文件,甚至所有包含的标头。
因此,我的 make 可执行文件仅重建对象如果任何依赖项的修改日期比相关对象本身的修改日期更新。
您可以创建一个 VSCode 扩展, 将“
Save as Old
”功能/选项添加到File
菜单(Ctrl+Alt+S
),将文件的修改日期设置为2000-1-1(不显示“另存为”对话框),最后,每当您使用该功能时决定更改不需要重建。
警告:我之前做了类似的事情,仅针对标题,即使如此,我经常决定跳过部分一小时构建是错误的,让我想知道“出了什么问题?”,最终会做一个完成 5 小时 重建;-)
注意,我的项目有大约 3 GB 源代码,在 Core i5 CPU 上构建需要 5 个小时,但是,即使如此,我也决定永远不会使用“另存为旧”,除非我只更改文档-评论,我的意思是,如果您的源代码较少,则不必创建/使用此类扩展。