Use boost1.69.0 en Visual Studio 2017 en Windows 10

Prólogo

Boost es una biblioteca de programas de C ++ potente, delicadamente construida, multiplataforma, de código abierto y completamente gratuita, con la reputación de "C ++" cuasi "biblioteca estándar". Boost es desarrollado y mantenido por la comunidad Boost establecida por algunos miembros del Comité de Estándares de C ++. Utiliza muchas técnicas modernas de programación de C ++, que cubren el procesamiento de cadenas, expresiones regulares, contenedores y estructuras de datos, programación concurrente y programación funcional. Se ha actualizado a la versión 1.72.0, la dirección de descarga oficial del sitio web es: https://www.boost.org/users/history/version_1_72_0.html , porque anteriormente instalé Boost 1.69.0 en mi propio sistema Windows 10, su fuente La dirección de descarga del código es: https://sourceforge.net/projects/boost/files/boost/1.69.0/ , por lo que este artículo demuestra directamente el uso de la versión boost1.69.0 en VS2017, utilizando el modo de depuración de 32 bits para las pruebas, otros 64-bit y el compilador VS son iguales.

1. Descargue la versión compilada boost1.69.0 para MSVC de sourceforge

Debido a que compilar Boost directamente desde el código fuente lleva mucho tiempo, alguien en sourceforge-boost1.69.0-msvc proporciona la versión MSVC del compilado boost1.69.0, como se muestra en la siguiente figura:

boost1111
La figura anterior es la versión de boost1.69.0 compilada para el compilador MSVC, Visual VC ++,
donde msvc es el nombre del compilador VC ++, 12.0 representa la versión de VS2013, 14.0 es la versión de VS2015, 14.1 es la versión de VS2017, y 32 y 64 indican Ya sea para generar una biblioteca lib o dll de 32 bits o 64 bits.

De esta manera, no necesitamos compilar el código fuente de Boost nosotros mismos. Después de descargar boost_1_69_0-msvc-14.1-64.exe, estos archivos se comprimen en el directorio especificado y contienen los archivos de encabezado y archivos de biblioteca correspondientes, que se pueden usar directamente en Visual Studio 2017.
Como VS2013 y VS2017 se instalaron en mi propio sistema Windows 10, descargué 3 versiones, como se muestra a continuación:
boost222

Extraiga boost_1_69_0-msvc-14.1-32.exe en el directorio especificado

Tomando boost_1_69_0-msvc-14.1-32.exe como ejemplo, la estructura del directorio descomprimido se muestra a continuación:
2222
Por conveniencia, pongo directamente boost_1_69_0-msvc-12.0-32.exe, boost_1_69_0-msvc-14.1-32.exe, boost_1_69_0 -Las bibliotecas lib de los tres programas -msvc-14.1-64.exe se descomprimen en el mismo directorio, correspondiente a lib32-msvc-12.0, lib32-msvc-14.1
,, lib64-msvc-14.1

Use boost1.69.0 en VS2017

Por ejemplo, puse el código fuente compilado boost_1_69_0 y la biblioteca lib en el directorio D: \ env_build \ boost_1_69_0, donde el directorio boost es el directorio donde se almacenan los archivos de encabezado, lib32-msvc-12.0, lib32-msvc-14.1
,, lib64- Los tres directorios de msvc-14.1 corresponden a los 32 bits de VS2013, los 32 bits de VS2017 y el directorio lib de la biblioteca estática de 64 bits de VS2017.

Archivo de código fuente: Boost_lambda_Demo.cpp

Cree un proyecto vacío de la consola VC ++ Boost_lambda en VS2017, agregue un archivo Boost_lambda_Demo.cpp, el código es el siguiente:

#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>

int main(int argc, char* argv[])
{
	using namespace boost::lambda;
	typedef std::istream_iterator<int> in;

	std::for_each(
		in(std::cin), in(), std::cout << (_1 * 3) << "\n");

	return 0;
}

Como se muestra en la siguiente figura:
3333
Como se puede ver en la figura anterior, dado que no hay un archivo de encabezado que contenga la biblioteca de impulso, el programa informa un error, por lo que tenemos que importar el archivo de encabezado y el directorio donde se encuentra el archivo de la biblioteca lib en el proyecto.

Agregar archivo de encabezado de impulso

Haga clic derecho en [Boost_lambda] - "[Propiedades], en la página de propiedades del proyecto emergente, a su vez [Propiedades de configuración] -> [C / C ++] -> [General] -> [Directorio de inclusión adicional], agregue boost1.69.0 En el directorio, el mío es D: \ env_build \ boost_1_69_0, esto se basa en la configuración del directorio de la biblioteca Boost descomprimida por usted mismo, como se muestra en la siguiente figura: Después de
4 4
hacer clic en el botón Aceptar, el mensaje de error rojo en el programa desapareció, lo que indica que Boost se puede usar en el proyecto La biblioteca se muestra en la siguiente figura: El
55
resultado de la operación se muestra en la siguiente figura:
66
Por supuesto, debido a que el uso de boost lambda solo necesita incluir el archivo de encabezado, también puede ejecutarse normalmente sin importar el archivo de biblioteca estática lib, pero si es otro como regex regular Si la expresión necesita depender de la biblioteca estática, se informará un error, como se muestra en la siguiente figura:
regex
1> ENLACE: error fatal LNK1104: No se puede abrir el archivo "libboost_regex-vc141-mt-gd-x32-1_69.lib" El
motivo del error es que no se puede encontrar la correspondencia Libboost_regex-vc141-mt-gd-x32-1_69.lib biblioteca de enlaces estáticos

Agregue el archivo de biblioteca estática boost1.69.0 lib

Haga clic con el botón derecho en [Boost_lambda] - "[Propiedades], en la página de propiedades del proyecto emergente, a su vez [Propiedades de configuración] -> [Linker] -> [General] -> [Directorio de biblioteca adicional], agregue boost1.69.0 El directorio donde se encuentra la biblioteca lib. Dado que estoy usando un proyecto de depuración x86 de 32 bits basado en VS2017, necesito agregar el directorio lib32-msvc-14.1, que es D: \ env_build \ boost_1_69_0 \ lib32-msvc-14.1, que se impulsa de acuerdo con mi propia descompresión El directorio de la biblioteca se establece, dependiendo de si el proyecto es de 32 bits o de 64 bits y la versión de Visual Studio, como se muestra en la siguiente figura:
7 7
Dado que el uso de la biblioteca boost regex debe incluir no solo los archivos de encabezado, sino también los archivos de biblioteca estática lib correspondientes, debe ser El directorio de la biblioteca estática correspondiente se agrega al proyecto, como se muestra en la siguiente figura: Los
8
resultados de ejecución son los siguientes:
9 9
Para ver los resultados de la prueba de boost regex, puse el programa directamente bajo el sistema CentOS7.5 en el host de la nube Tencent y creé un boost_regex. El archivo de código fuente de cpp y el archivo de código fuente correspondiente del archivo de texto
jayne.txt boost_regex.cpp:

#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main()
{
	std::string line;
	boost::regex pattern("^Subject: (Re: |Aw: )*(.*)");

	while (std::cin)
	{
		std::getline(std::cin, line);
		boost::smatch matches;
		if (boost::regex_match(line, matches, pattern))
		{
			std::cout << matches[2] << std::endl;
		}
	}

	return 0;
}

archivo de texto jayne.txt

To: George Shmidlap
From: Rita Marlowe
Subject: Will Success Spoil Rock Hunter?
---
See subject.

Los resultados de la prueba se muestran a continuación:
resultado2

Información relacionada

131 artículos originales publicados · Me gusta 38 · Visita 990,000+

Supongo que te gusta

Origin blog.csdn.net/ccf19881030/article/details/104696222
Recomendado
Clasificación