visual versiones studio que programación lenguaje historia entre diferencia c++ visual-c++ compiler-optimization msvc12

versiones - visual c++ y c++



"La función no tiene dirección" a pesar de la optimización desactivada(/ Od) (2)

Hasta el momento, encontré una solución para construir la biblioteca externa estáticamente. Con las bibliotecas vinculadas estáticamente, se encuentran las direcciones de los métodos. El administrador de configuración permite mantener bibliotecas dinámicas para el lanzamiento fácilmente.

Durante la depuración en MSVC 2012, intento llamar algunas funciones desde la ventana Inspección para volcar datos a los archivos. Sin embargo, sigo recibiendo este error:

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

La clase Matrix está ubicada en mi propia biblioteca externa. Una comprobación rápida demostró que ninguno de los métodos en las bibliotecas externas tiene direcciones y todos los intentos de invocarlos desde Watch devuelven este error, excepto los que están definidos en los archivos de encabezado. Todos los métodos del proyecto principal tienen direcciones, independientemente de dónde estén definidos.

La optimización está desactivada en toda la solución, por supuesto. Los símbolos se cargan normalmente. ¿Cómo lo arreglo?


Como un simple woraround, puede llamar a la función de destino ( Matrix :: Save ) al menos una vez en la rama del código actual. Entonces tendrá una dirección porque se usa.