CMake在更改时不会重新编译源文件?

时间:2014-12-17 17:27:12

标签: c++ linux cmake

我正在使用cmake构建我的库,当我更改其中一个LIB_SRCS文件并在命令行中键入make时,它不会编译该文件!

set (LIB_SRCS
  ${PROJECT_SOURCE_DIR}/src/A.cpp
  ${PROJECT_SOURCE_DIR}/src/B.cpp
  ${PROJECT_SOURCE_DIR}/src/C.cpp
)
add_library (mylib SHARED ${LIB_SRCS})
add_dependencies(mylib ${LIB_SRCS})

1 个答案:

答案 0 :(得分:5)

你应该检查的第一件事是.o和.so vs .cpp的修改时间 当.cpp的mtime大于.o时,它应该重建。即使没有通过'touch'file.cpp进行修改,您也可以对其进行测试。

在某些奇怪的情况下,由于许多原因时间可能会不匹配,然后它将无法正常工作。 可能的原因可能是例如一些使用系统时间或使用网络文件系统的恶魔等等。

然而,在现实生活中,通常不会犯错,但开发人员会犯错: - )