我正在使用CMake编译一个带有几个外部库的程序:Qt,OMP和Boost。但是,最近在头文件中向类声明添加字段会导致在运行已编译的程序时出现即时段错误。这看起来类似于here和here所讨论的问题,正如在那里讨论的那样,清理构建目录并重新编译确实有效,但与两者不同,我不使用QMake而是使用CMake所以没有明确的dependency_dir。
我不确定导致此问题的原因以及如何解决此问题。临时修复是在更改标题后简单地继续清理构建目录,但它并没有真正解决核心问题。
更清楚地说明会发生什么:
vector<double> _doubletTranslationLong;
// This work fine
vector<double> _doubletTranslationLong2;
// if this (or anything else) is added in the header, the program
// compiles fine but crashes instantly for the same input that worked
// earlier until a clean build is done.