Makefile 你需要在CMake之后再做吗?

Makefile 你需要在CMake之后再做吗?,makefile,cmake,Makefile,Cmake,这是我第一次手动构建库,所以我只想验证一些东西。有时,我以以下方式运行Cmake: cmake -SOME_SWITCH=ON .. 这运行得相当快。然而,在那之后,我运行: sudo make 这需要很长的时间(30-40分钟) 所以我的问题是,如果我在那之后再次使用: cmake -SOME_SWITCH=ON -SWITCH2=ON .. 我需要再做一次吗?如果是这样的话,有没有一种方法不必再次检查整个make(即只编译新条目?) 谢谢 CMake不是一个构建系统,它是一个构建系统生

这是我第一次手动构建库,所以我只想验证一些东西。有时,我以以下方式运行Cmake:

cmake -SOME_SWITCH=ON ..
这运行得相当快。然而,在那之后,我运行:

sudo make
这需要很长的时间(30-40分钟)

所以我的问题是,如果我在那之后再次使用:

cmake -SOME_SWITCH=ON -SWITCH2=ON ..
我需要再做一次吗?如果是这样的话,有没有一种方法不必再次检查整个make(即只编译新条目?)


谢谢

CMake不是一个构建系统,它是一个构建系统生成器。这就是为什么(为了回答第一个问题),在运行
cmake
之后需要调用
make
;运行
cmake
生成带有适当依赖项、标志、等等的
Makefile
s,运行
make
实际使用它们


至于第二个问题,您不应该再次重建整个项目,除非发生影响整个项目的更改(例如,您更改了cflags或修改了包含所有内容的标题)。运行
cmake
后,保留构建目录,您应该能够运行
make
(它将检测
CMakeLists.txt
文件是否已更改,并且
cmake
需要再次调用)。

很可能,但是,根据更改和项目的组织方式,在后续编译中应该会更快。至于你关于表现的问题,请尝试特别值得注意的建议:使用@avigil我知道这已经晚了,但我只想让你知道我爱你。我不知道ccache,但它基本上把构建时间从40分钟缩短到了2分钟!非常感谢。