Pregunta

Primero hice un programa en Eclipse (compilador Mingw). Ahora estoy traduciendo el código a Visual Studio 2008. Es una solución con múltiples proyectos. 2 de los proyectos son para ejecutar un programa (consola). Los otros 2 proyectos son clases de ayuda para aquellos. He establecido las dependencias del proyecto para que los proyectos se compilen en el orden correcto. Ahora recibo un mensaje de error LNK2019 y LNK1120 porque no tengo principal en el proyecto Helper. He tratado de compilar los proyectos de ayuda sin vincular, pero no puedo descubrir cómo debería hacerlo. He intentado agregar la opción del compilador -c pero sin éxito. También he tratado de agregar un proyecto principal inútil al proyecto auxiliar, pero luego la compilación falla en la compilación del principal real con "la función no se puede sobrecargar".

¿Cómo puedo solucionar esto para que pueda tener proyectos de ayuda sin un principal?

¿Fue útil?

Solución

Si desea hacer una biblioteca de ayuda, debe usar el tipo de proyecto Class Library en vez de Console Application

Otros consejos

Puede compilar a sus ayudantes como bibliotecas estáticas y vincularlos a sus programas principales.

  1. Haga clic derecho en los proyectos en el Explorador de soluciones para compilarlos independientemente de toda la solución. Tú también puedes construir ellos por separado, que realiza tanto la compilación como la vinculación.

  2. En Windows (no estoy seguro de Linux), los DLL todavía requieren un punto de entrada. El nombre convencional es DllMain. Si no desea un punto de entrada, debe crear una biblioteca estática en lugar de una DLL, que se vincula en su aplicación en el momento de la enlace en lugar de cargarse dinámicamente en el tiempo de ejecución.

    Deberá cambiar las propiedades de su proyecto para decirle que ahora está creando una biblioteca estática, en lugar de una biblioteca dinámica. Esto evitará que el enlazador busque un main función. Puede que encuentres Este tutorial útil.

    El error de "función no se puede sobrecargar" se debe a que el ficticio main función que agregó tiene/tenía la firma incorrecta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top