2012-05-10 32 views
1

我有一个项目,我正在使用CMake管理,我遇到了一些我不明白的奇怪行为。如果我清除了我的编译目录,运行cmake,运行make,然后运行我的程序,我的程序每次都崩溃,因为我在pthreads/boost线程的某处断言了一个断言。无论我做了多少次,并且清理这个项目,每次运行它都会崩溃。但是,如果我然后删除CMaketCache.txt,重新生成我的makefile,生成并运行,程序每次都按预期运行。CMake失败,直到您删除CMake缓存

总之我需要遵循以下步骤为我的代码工作...

  1. 运行cmake
  2. 运行make
  3. RM CMakeCache.txt
  4. 运行make
  5. 运行程序

看来,在我rem之前和之后的Make文件CMakeCache.txt不同。什么可以解释这种行为?

回答

1

你有没有安装git?如果是这样,你可以使用这一招:

  • 运行cmake
  • 使
  • git的补充。
  • git的承诺-m “”
  • RM CMakeCache.txt
  • 运行make
  • git的差异

一些奇怪的事情,我可以在你在说什么看到的。我不明白为什么你的程序会因为你删除CMakeCache.txt而重新编译任何东西。所有东西都应该是最新的,所以有些东西是不好的......我的猜测是它第二次找到一个不同的线程库或没有线程库。

+0

一旦你看完diff,你会想''git reset HEAD ^'来摆脱临时提交。 –