& quot; Функция не имеет адреса & quot; несмотря на отключенную оптимизацию (/ Od)

Во время отладки в MSVC 2012 я пытаюсь вызвать некоторые функции из окна Watch, чтобы выгрузить данные в файлы. Тем не менее, я продолжаю получать эту ошибку:

Function Matrix::Save has no address, possibly due to compiler optimizations.

Класс Matrix находится в моей собственной внешней библиотеке. Быстрая проверка показала, что ни один из методов во внешних библиотеках не имеет адресов, и все попытки вызвать их из Watch возвращают эту ошибку, кроме тех, которые определены в заголовочных файлах. Все методы в основном проекте имеют адреса независимо от того, где они определены.

Разумеется, оптимизация отключена во всем решении. Символы загружаются нормально. Как мне это исправить?

11

Решение

В качестве более простой ситуации вы можете вызвать целевую функцию (Матрица :: Сохранить) хотя бы один раз в текущей ветви кода. Тогда у него будет адрес, потому что он используется.

1

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

До сих пор я нашел обходной путь в статическом построении внешней библиотеки. В статически связанных библиотеках адреса методов найдены. Диспетчер конфигурации позволяет легко хранить динамические библиотеки для выпуска.

0

По вопросам рекламы [email protected]