¿Hay alguna manera de forzar el mismo código para producir el mismo binario en Visual C++? ¿Apagar la marca de tiempo en el PE o forzar la marca de tiempo en el PE para que sea un valor fijo, en otras palabras?Reproducibilidad binaria en Visual C++
Respuesta
Supongo que podría escribir una utilidad para abrir el PE, establecer la suma de comprobación en 0, configurar la marca de tiempo a su gusto, volver a calcular el crc y luego volver a escribirlo. Sin embargo, sería bueno si hubiera una manera oficial de garantizar una reproducibilidad binaria perfecta.
Para más información: http://msdn.microsoft.com/en-us/magazine/cc301805.aspx
No es sólo una marca de tiempo - hay un GUID incrustado utilizado para el AP juego - como John Robbins explains.
Incluso más allá de eso, simplemente no hay manera de forzar al compilador para generar resultados consistentes, como Jim Griesmer explains -
autores de compiladores están mucho más interesados en generar correctamente el funcionamiento de código y generar rápidamente que asegurar que todo lo que se genera se presenta de forma idéntica en su disco duro. Debido a los numerosos y variados métodos e implementaciones para optimizar el código, siempre es posible que una compilación termine con un poco más de tiempo para hacer algo extra o diferente de lo que hizo otra compilación. Por lo tanto, el resultado final podría ser un conjunto diferente de bits para lo que es la misma funcionalidad.
Por lo tanto, la función y el orden sección son no garantiza que sea ordenado constantemente en el PE resultante. Un ejemplo es en el enlace.
- 1. Búsqueda binaria genérica en C#
- 2. serialización binaria/deserialización en C++ y C#
- 3. Búsqueda binaria C++ STL
- 4. LLVM y visual studio .obj incompatibilidad binaria
- 5. constante binaria C++/literal
- 6. Tabla binaria/hash binaria persistente en .Net
- 7. C# Serialización binaria de objetos
- 8. Reproducibilidad de números java pseudoaleatorios en sistemas y versiones?
- 9. árbol de búsqueda binaria en C# Implementación
- 10. Representación binaria de un número en C
- 11. Árbol de búsqueda binaria en C
- 12. ¿El estándar C++ requiere una máquina binaria?
- 13. búsqueda binaria vs árbol de búsqueda binaria
- 14. Búsqueda binaria en matriz
- 15. Pthreads en Visual C++
- 16. C en Visual Studio
- 17. Computing π a "infinito" precisión binaria en C#
- 18. Convirtiendo un byte a una cadena binaria en C#
- 19. ¿La mejor manera de hacer aritmética binaria en C?
- 20. ¿Visualiza la representación binaria de un número en C?
- 21. ¿Cómo cambio la variable OutDir en Visual C++?
- 22. Negación unaria y binaria
- 23. generación binaria de LLVM
- 24. C# y Visual C#?
- 25. PHP escribir respuesta binaria
- 26. Implementar búsqueda binaria en objetos
- 27. Referencias DLL en Visual C++
- 28. LNK 2005 en Visual C++ en Visual Studio 2010
- 29. Compatibilidad binaria de contenedores STL
- 30. ¿Hay una búsqueda binaria incorporada en Ruby?