Advertencia de las herramientas del vinculador LNK4210
la sección section existe; podría haber terminadores o inicializadores estáticos no controlados
Comentarios
Algún código ha introducido inicializadores o terminadores estáticos, pero el código de inicio de la biblioteca VCRuntime o su equivalente (que debe ejecutar los inicializadores o terminadores estáticos) no se ejecuta cuando se inicia la aplicación. Estos son algunos ejemplos del código que requiere inicializadores o terminadores estáticos:
Variable de clase global con un constructor, un destructor o una tabla de funciones virtuales.
Variable global inicializada con una constante no en tiempo de compilación.
Para corregir este problema, intente con alguna de las opciones siguientes:
Quite todo el código con inicializadores estáticos.
No use /NOENTRY. Después de quitar /NOENTRY, es posible que también tenga que quitar /NODEFAULTLIB de la línea de comandos del enlazador.
Si la compilación usa /MT, agregue libcmt.lib, libvcruntime.lib y libucrt.lib a la línea de comandos del enlazador. Si la compilación usa /MTd, agregue libcmtd.lib, vcruntimed.lib y libucrtd.lib.
Al pasar de la compilación /clr:pure a /clr, quite la opción /ENTRY de la línea del enlazador. Esto habilita la inicialización de CRT y permite que los inicializadores estáticos se ejecuten en el inicio de la aplicación. La opción del compilador /clr:pure está en desuso en Visual Studio 2015 y no se admite en Visual Studio 2017.
La opción del compilador /GS requiere la inicialización por parte de la función __security_init_cookie
. Esta inicialización se proporciona de manera predeterminada en el código de inicio de la biblioteca VCRuntime que se ejecuta en _DllMainCRTStartup
.
- Si el proyecto se compila mediante /ENTRY y si se pasa una función distinta de
_DllMainCRTStartup
a /ENTRY, la función debe llamar a_CRT_INIT
para inicializar CRT. Por sí sola, esta llamada no basta si el archivo DLL usa /GS, requiere inicializadores estáticos o se la llama en el contexto de código MFC o ATL. Para más información, consulte Archivos DLL y comportamiento de la biblioteca en tiempo de ejecución de Visual C++.
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de