Veo la opción/Gy y me pregunto por qué la usaría? http://msdn.microsoft.com/en-us/library/xsa71f43.aspx¿Para qué se utiliza la sección COMDAT?
Respuesta
El currently accepted answer es algo incompleto.
El propósito de una sección COMDAT es permitir que las secciones "duplicadas" se definan en varios archivos de objeto. Normalmente, si el mismo símbolo se define en varios archivos de objeto, el vinculador informará los errores. Esto puede causar problemas para algunas características del lenguaje C++, como plantillas, que pueden instanciar los mismos símbolos en diferentes archivos cpp.
Las secciones COMDAT se utilizan para evitar esto. Cuando una sección está marcada como COMDAT en un archivo de objeto, también especifica un indicador que indica cómo se deben resolver los conflictos. Hay un montón de opciones, entre las que se incluyen "solo elija a quien desee", "asegúrese de que todas las conexiones sean del mismo tamaño", "asegúrese de que todas las conexiones tengan el mismo contenido", "elija la más grande", etc. la especificación COFF para una lista completa.
En cualquier caso, a diferencia de lo que dijo el currently accepted answer, no hay requisitos, de una forma u otra, sobre cuál debe ser el contenido de una sección COMDAT. Pueden contener un procedimiento, muchos procedimientos, datos o cualquier combinación de código y datos.
/opción de Gy es bueno para ser utilizado en compilaciones de lanzamiento. porque cada función tiene su propia sección, el enlazador puede eliminar cada pieza de código no utilizada. Si no especifica la opción/Gy obtendrá algo como esto: "a.cpp" define 3 funciones y el compilador las coloca en una sección de código al compilar. "main.cpp" usa solo una función de "a.cpp", pero cuando se vinculan todas las funciones de "a.cpp" se vinculará (dos de ellas como una carga). Y si cada función tuviera su propia sección, el enlazador podría recoger solo una que contenga la función que necesita "main.cpp". La compilación sin la opción/Gy es buena para compilaciones de depuración. Al compilar una clase, todos sus métodos tienen sus propias secciones por defecto.
Esto es viejo, pero para información de cualquiera: así no es como funciona el enlazador. Hay un conmutador totalmente diferente que controla las funciones sin referencia:/OPT: REF (Optimización-> Referencias: Sí). Hay otro derecho debajo que fusiona funciones idénticas,/OPT: ICF. ICF solo funciona con/Gy, pero REF funciona con o sin él. – SilverbackNet
- 1. ¿Para qué se utiliza .data.rel.ro?
- 2. ¿para qué se utiliza java.lang.reflect.Method.isBridge()?
- 3. ¿Para qué se utiliza Sqlite?
- 4. ¿Para qué se utiliza iframe?
- 5. ¿Para qué se utiliza LDAP?
- 6. ¿para qué se utiliza ids.xml?
- 7. ¿Para qué se utiliza RFHUTIL?
- 8. ¿Para qué se utiliza _references.js?
- 9. ¿Para qué se utiliza global.asax?
- 10. ¿Para qué se utiliza Go?
- 11. ¿Para qué se utiliza nbactions.xml?
- 12. ¿Para qué se utiliza #pragma?
- 13. ¿Para qué se utiliza GCC_NO_COMMON_BLOCKS?
- 14. ¿Para qué se supone que se utiliza la anotación javax.inject.Named?
- 15. ¿Para qué se utiliza Google Analytics '__utm.gif?
- 16. Android: ¿Para qué se utiliza android.R.id.content?
- 17. ¿Para qué se utiliza `related_name` en Django?
- 18. Makefile $ @ variable: ¿para qué se utiliza?
- 19. SOAP - namespace, ¿para qué se utiliza?
- 20. ¿Para qué se utiliza "java web start"?
- 21. ¿Para qué se utiliza std :: vector :: front()?
- 22. ¿Cómo lidiar con IFDEF en .dpr utiliza la sección
- 23. ¿Para qué se utiliza la colección TempData en asp.net MVC?
- 24. ¿Para qué se utiliza la palabra clave Javascript Package?
- 25. ¿Para qué se utiliza la palabra clave 'char'?
- 26. ¿Para qué se utiliza la codificación base 64?
- 27. ¿Para qué se utiliza la carpeta App_Data en Visual Studio?
- 28. ¿Para qué se utiliza la "tira" (aplicación GCC)?
- 29. ¿Para qué se utiliza la reentrada de bloqueo en java?
- 30. ¿Para qué se utiliza la palabra clave "con" de python?
posible duplicado de [Enlace funcional-función (/ Interruptor Gy en VC++) - ¿Para qué sirve?] (Http://stackoverflow.com/questions/629894/function-level-linking-gy-switch-in -vc-what-is-it-good-for) –