1

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

总之,我需要按照以下步骤才能使我的代码正常工作...

  1. 运行 Cmake
  2. 运行制作
  3. rm CMakeCache.txt
  4. 运行制作
  5. 运行程序

我删除 CMakeCache.txt 之前和之后的 Make 文件似乎有所不同。什么可以解释这种行为?

4

1 回答 1

1

你有安装 git 吗?如果是这样,您可以使用此技巧:

  • 运行 cmake
  • 制作
  • 混帐添加。
  • git 提交 -m ""
  • rm CMakeCache.txt
  • 运行制作
  • 混帐差异

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

于 2012-05-10T16:48:14.613 回答