Как избежать для оптимизатора компилятора c ++ для удаления статических переменных кода?

Я использую C ++ в MS Visual Studio C ++ 2013 sp5.
Как вы знаете, google test (gtest) инициализирует тестовые коды как статические переменные.
Когда я помещаю эти gtest коды (.cpp) в основной проект, проблем нет.
Но когда я перемещаю эти коды gtest (.cpp) в библиотечный проект, от которого зависит основной проект, gtest не работает.
Я не могу поставить точку останова, как будто нет кода. (Точка останова выглядит как белый круг, а не красный круг).
Я предполагаю, что оптимизатор компилятора пропускает эти статические переменные в коде cpp, потому что эти переменные нигде не являются ссылками. Но его конструктор делает что-то, поэтому я не понимаю, почему компилятор удаляет или не создает код для этих статических переменных.

Как предотвратить эту ситуацию?
Есть ли варианты для этого? Или любое ноу-хау?

0

Решение

Превратите «Зависимости библиотеки ссылок» и «Использовать входы зависимости библиотеки» в «Да», затем компилятор создаст коды. Оно работает.
Статическая переменная C ++ в .lib не инициализируется
заставить Visual Studio связать все символы в файле lib

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector