如何避免c ++编译器优化器删除静态变量代码?

时间:2016-01-16 06:53:52

标签: c++ visual-studio optimization googletest static-variables

我在MS Visual Studio C ++ 2013 sp5中使用C ++。 如您所知,google test(gtest)将测试代码初始化为静态变量。 当我把这些gtest代码(.cpp)放在主项目中时,没有问题。 但是,当我将这些gtest代码(.cpp)移动到主项目所依赖的库项目时,gtest不起作用。 我不能把断点当作没有代码。 (BreakPoint点看起来像白色圆圈而不是红色圆圈)。 我想编译器优化器在cpp中省略了这些静态变量代码,因为这些变量无处引用。但是,它的构造函数做了一些事情,所以我不明白为什么编译器删除或不为这些静态变量创建代码。

如何预防这些情况? 那有什么选择吗?或者任何专有技术?

1 个答案:

答案 0 :(得分:0)

转向'链接库依赖关系'和'使用库依赖项输入'进入是然后编译器生成代码。有用。 C++ static variable in .lib does not initialize force visual studio to link all symbols in a lib file