Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial paso a paso se muestra cómo crear una biblioteca estática (archivo .lib) para su uso con aplicaciones de C++. Utilizar una biblioteca estática es una excelente manera de reutilizar el código. En lugar de volver a implementar las mismas rutinas en todas las aplicaciones que requieren la funcionalidad, escríbalas una vez en una biblioteca estática y, a continuación, haga referencia a ellas desde las aplicaciones. El código vinculado desde una biblioteca estática forma parte de la aplicación. No tiene que instalar otro archivo para usar el código.
En este tutorial se tratan las siguientes tareas:
Creación de una aplicación de consola de C++ que haga referencia a la biblioteca estática
Uso de la funcionalidad de la biblioteca estática en la aplicación
Requisitos previos
Descripción de los fundamentos del lenguaje C++.
Creación de un proyecto de biblioteca estática
Las instrucciones para crear el proyecto varían en función de la versión de Visual Studio. Para ver la documentación de su versión preferida de Visual Studio, use el control de selector Versión. Se encuentra en la parte superior de la tabla de contenido de esta página.
Para crear un proyecto de biblioteca estática en Visual Studio:
En la barra de menús, elija Archivo>nuevo>Project para abrir el cuadro de diálogo Crear un nuevo project.
En la parte superior del cuadro de diálogo, establezca Lenguaje en C++, establezca Plataforma en Windows, y establezca Tipo de proyecto en Biblioteca.
En la lista filtrada de tipos de proyecto, seleccione Windows Asistente para escritorio y, a continuación, elija Siguiente.
En la página Configurar el nuevo proyecto, escriba MathLibrary en el cuadro Nombre del proyecto para especificar un nombre para el proyecto. Escriba StaticMath en el cuadro Nombre de la solución. Haga clic en el botón Crear para abrir el cuadro de diálogo Proyecto de escritorio de Windows.
En el cuadro de diálogo Proyecto de escritorio de Windows, en Tipo de aplicación, seleccione Biblioteca estática (.lib).
En Opciones adicionales, desactive la casilla Encabezado precompilado si está seleccionada. Seleccione Proyecto vacío.
Elija Aceptar para crear el proyecto.
Para crear un proyecto de biblioteca estática en Visual Studio 2017:
En la barra de menús, elija Archivo>Nuevo>Proyecto.
En el cuadro de diálogo New Project, seleccione Installed>Visual C++>Windows Desktop. En el panel central, seleccione Asistente de Escritorio de Windows.
Especifique un nombre para el proyecto, como MathLibrary, en el cuadro Nombre . Especifique un nombre para la solución, como StaticMath, en el cuadro Nombre de la solución. Elija Aceptar.
En el cuadro de diálogo Proyecto de escritorio de Windows, en Tipo de aplicación, seleccione Biblioteca estática (.lib).
En Opciones adicionales, desactive la casilla Encabezado precompilado si está seleccionada. Seleccione Proyecto vacío.
Elija Aceptar para crear el proyecto.
Para crear un proyecto de biblioteca estática en Visual Studio 2015:
En la barra de menús, elija Archivo>Nuevo>Proyecto.
En el cuadro de diálogo Nuevo proyecto, seleccione Instaladas>Plantillas>Visual C++>Win32. En el panel central, seleccione Aplicación de consola Win32.
Especifique un nombre para el proyecto, como MathLibrary, en el cuadro Nombre . Especifique un nombre para la solución, como StaticMath, en el cuadro Nombre de la solución. Elija Aceptar.
En el Asistente para aplicaciones Win32, elija Siguiente.
En la página Configuración de la aplicación, en Tipo de aplicación, seleccione Biblioteca estática. En Opciones adicionales, desactive la casilla Encabezado precompilado . Haga clic en Finalizar para crear el proyecto.
Adición de una clase a la biblioteca estática
Para agregar una clase a la biblioteca estática:
Cree un archivo de encabezado para una nueva clase. En Explorador de soluciones, haga clic con el botón derecho en MathLibrary para abrir el menú contextual del proyecto. Seleccione Agregar>Nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento , seleccione Visual C++>Code. En el panel central, seleccione Archivo de encabezado (.h). Especifique un nombre para el archivo de encabezado, como MathLibrary.h y, a continuación, seleccione Agregar. Se muestra un archivo de encabezado casi en blanco.
Agregue una declaración para una clase denominada
Arithmeticpara hacer operaciones matemáticas comunes, como sumas, restas, multiplicaciones y divisiones. El código debería ser similar al siguiente:// MathLibrary.h #pragma once namespace MathLibrary { class Arithmetic { public: // Returns a + b static double Add(double a, double b); // Returns a - b static double Subtract(double a, double b); // Returns a * b static double Multiply(double a, double b); // Returns a / b static double Divide(double a, double b); }; }Para crear un archivo de código fuente para la nueva clase, abra el menú contextual del proyecto MathLibrary en Explorador de soluciones y, a continuación, elija Agregar>nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento , en el panel central, seleccione Archivo de C++ (.cpp). Especifique un nombre para el archivo de origen, como MathLibrary.cpp. A continuación, seleccione Agregar. Se muestra un archivo de código fuente en blanco.
Use este archivo de código fuente para implementar la funcionalidad de la clase
Arithmetic. El código debería ser similar al siguiente:// MathLibrary.cpp // compile with: cl /c /EHsc MathLibrary.cpp // post-build command: lib MathLibrary.obj #include "MathLibrary.h" namespace MathLibrary { double Arithmetic::Add(double a, double b) { return a + b; } double Arithmetic::Subtract(double a, double b) { return a - b; } double Arithmetic::Multiply(double a, double b) { return a * b; } double Arithmetic::Divide(double a, double b) { return a / b; } }Para compilar la biblioteca estática, seleccione Compilar>Compilar solución en la barra de menús. La compilación crea una biblioteca estática, MathLibrary.lib, que otros programas pueden usar.
Nota:
Cuando compile desde la línea de comandos de Visual Studio, debe compilar el programa en dos pasos.
- Ejecute
cl /c /EHsc MathLibrary.cpppara compilar el código y crear un archivo de objeto denominado MathLibrary.obj. Elclcomando invoca al compilador, Cl.exey la/copción especifica la compilación sin vincular. Para obtener más información, vea /c (Compilar sin vinculación). - Ejecute
lib MathLibrary.objpara vincular el código y crear la biblioteca estática MathLibrary.lib. Ellibcomando invoca al Administrador de bibliotecas, Lib.exe. Para obtener más información, consulte Referencia de LIB.
- Ejecute
Creación de una aplicación de consola de C++ que haga referencia a la biblioteca estática
Para crear una aplicación de consola de C++ que haga referencia a la biblioteca estática en Visual Studio:
En Explorador de soluciones, haga clic con el botón derecho en el nodo superior, Solución "StaticMath", para abrir el menú contextual. Elija Agregar>Nuevo proyecto para abrir el cuadro de diálogo Agregar un nuevo proyecto.
En la parte superior del cuadro de diálogo, establezca el filtro Tipo de proyecto en Consola.
En la lista filtrada de tipos de proyecto, seleccione Aplicación de consola y luego elija Siguiente. En la página siguiente, escriba MathClient como nombre del proyecto.
Elija Crear para crear el proyecto de cliente.
Después de crear una aplicación de consola, se crea automáticamente un proyecto vacío para ti. El nombre del archivo de código fuente será el mismo que el elegido anteriormente. En este ejemplo, se denomina
MathClient.cpp.
Para crear una aplicación de consola de C++ que haga referencia a la biblioteca estática en Visual Studio 2017:
En Explorador de soluciones, haga clic con el botón derecho en el nodo superior, Solución "StaticMath", para abrir el menú contextual. Elija Agregar>Nuevo proyecto para abrir el cuadro de diálogo Agregar un nuevo proyecto.
En el cuadro de diálogo Agregar nuevo Project, seleccione Instalado>Visual C++>Windows Desktop. En el panel central, seleccione Asistente de Escritorio de Windows.
Especifique un nombre para el proyecto (por ejemplo, MathClient) en el cuadro Nombre. Elija el botón Aceptar .
En el cuadro de diálogo Proyecto de escritorio de Windows, en Tipo de aplicación, seleccione Aplicación de consola (.exe).
En Opciones adicionales, desactive la casilla Encabezado precompilado si está seleccionada.
Elija Aceptar para crear el proyecto.
Después de crear una aplicación de consola, se crea automáticamente un proyecto vacío para ti. El nombre del archivo de código fuente será el mismo que el elegido anteriormente. En este ejemplo, se denomina
MathClient.cpp.
Para crear una aplicación de consola de C++ que haga referencia a la biblioteca estática en Visual Studio 2015:
En Explorador de soluciones, haga clic con el botón derecho en el nodo superior, Solución "StaticMath", para abrir el menú contextual. Elija Agregar>Nuevo proyecto para abrir el cuadro de diálogo Agregar un nuevo proyecto.
En el cuadro de diálogo Agregar nuevo proyecto, seleccione Instaladas>Visual C++>Win32. En el panel central, seleccione Aplicación de consola Win32.
Especifique un nombre para el proyecto (por ejemplo, MathClient) en el cuadro Nombre. Elija el botón Aceptar .
En el cuadro de diálogo Asistente para aplicaciones Win32, elija Siguiente.
En la página Configuración de la aplicación, en Tipo de aplicación, asegúrese de que la opción Aplicación de consola está seleccionada. En Opciones adicionales, desactive Encabezado precompilado y, a continuación, seleccione Proyecto vacío. Haga clic en Finalizar para crear el proyecto.
Para agregar un archivo de código fuente al proyecto vacío, haga clic con el botón derecho para abrir el menú contextual del proyecto MathClient en Explorador de soluciones y, a continuación, elija Agregar>nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento , seleccione Visual C++>Code. En el panel central, seleccione Archivo de C++ (.cpp). Especifique un nombre para el archivo de código fuente, por ejemplo, MathClient.cpp, y después haga clic en el botón Agregar. Se muestra un archivo de código fuente en blanco.
Uso de la funcionalidad de la biblioteca estática en la aplicación
Para usar la funcionalidad de la biblioteca estática en la aplicación:
Haga referencia a la biblioteca estática antes de usar las rutinas matemáticas en ella. Abra el menú contextual del proyecto MathClient en Explorador de soluciones y elija Agregar>referencia.
En el cuadro de diálogo Agregar referencia se enumeran las bibliotecas a las que puede hacer referencia. La pestaña Proyectos enumera los proyectos de la solución actual y las bibliotecas a las que hacen referencia. Abra la pestaña Proyectos , seleccione MathLibrary y, a continuación, seleccione Aceptar.
Modifique la ruta de los directorios de inclusión para que haga referencia al archivo de encabezado
MathLibrary.h. En Explorador de soluciones, haga clic con el botón derecho en MathClient para abrir el menú contextual. Elija Propiedades para abrir el cuadro de diálogo Páginas de propiedades MathClient .En el cuadro de diálogo Páginas de propiedades MathClient , establezca el valor de Configuración en Todas las configuraciones. Establezca Plataforma en Todas las plataformas.
Seleccione la página de propiedades Propiedades de configuración>C/C++>General. En la propiedad Directorios de inclusión adicionales, especifique la ruta de acceso del directorio MathLibrary o búsquela.
Para navegar por la ruta del directorio:
Abra la lista desplegable del valor de propiedad Directorios de inclusión adicionales y, a continuación, seleccione Editar.
En el cuadro de diálogo Directorios de inclusión adicionales , haga doble clic en la parte superior del cuadro de texto. A continuación, presione el botón de puntos suspensivos (…) al final de la línea.
En el cuadro de diálogo Seleccionar directorio , vaya a un nivel y, a continuación, seleccione el directorio MathLibrary . Después, haga clic en el botón Seleccionar carpeta para guardar su selección.
En el cuadro de diálogo Directorios de inclusión adicionales , elija el botón Aceptar .
En el cuadro de diálogo Páginas de propiedades , elija el botón Aceptar para guardar los cambios en el proyecto.
Ahora puede usar la clase
Arithmeticen esta aplicación incluyendo el encabezado#include "MathLibrary.h"en el código. Reemplace el contenido deMathClient.cpppor el código siguiente:// MathClient.cpp // compile with: cl /EHsc MathClient.cpp /link MathLibrary.lib #include <iostream> #include "MathLibrary.h" int main() { double a = 7.4; int b = 99; std::cout << "a + b = " << MathLibrary::Arithmetic::Add(a, b) << std::endl; std::cout << "a - b = " << MathLibrary::Arithmetic::Subtract(a, b) << std::endl; std::cout << "a * b = " << MathLibrary::Arithmetic::Multiply(a, b) << std::endl; std::cout << "a / b = " << MathLibrary::Arithmetic::Divide(a, b) << std::endl; return 0; }Para compilar el archivo ejecutable, elija Compilación>Compilar solución en la barra de menús.
Ejecución de la aplicación
Para ejecutar la aplicación:
Compruebe que MathClient está seleccionado como proyecto predeterminado. Para seleccionarlo, haga clic con el botón derecho en MathClient en Explorador de soluciones para abrir el menú contextual y, a continuación, elija Establecer como inicio Project.
En la barra de menús, elija Depurar>Iniciar sin depurar para ejecutar el proyecto. El resultado debería ser similar al siguiente:
a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747475
Consulte también
Tutorial: Crear y usar una biblioteca de vínculos dinámicos (C++)