CMake se configura correctamente. La compilación empieza más tarde, intenta descargar una dependencia externa y falla en el proxy. El éxito anterior no necesariamente había ejercitado esa descarga en absoluto.

ExternalProject_Add() crea pasos que pueden ejecutarse durante la compilación. El proceso que lanza esos pasos puede tener un entorno distinto del terminal o del IDE que configuró el proyecto principal. Esa diferencia se pasa por alto fácilmente en CI, donde la configuración y la compilación pueden ser trabajos separados.

Localice la operación de red

No suponga que la configuración de proxy de un programa configura los tres. Lea el comando y el error del paso que falla antes de cambiar la URL de la dependencia.

Si el descargador elegido admite variables de entorno de proxy, proporciónelas al proceso que realmente ejecuta ese paso. Para descargas públicas cuyo cliente acepta un proxy HTTP, la lista de proxies HTTP ofrece candidatos de extremo cuando esa ruta está permitida. Pasar una variable de caché corriente de CMake con un nombre similar no es automáticamente lo mismo que definir una variable de entorno del proceso hijo.

Mantenga también la distinción con FetchContent: su habitual población de dependencias ocurre durante la configuración, así que una receta que funciona allí no establece el entorno de un paso de compilación de ExternalProject.

Una respuesta antigua que recomienda un descargador personalizado para sortear una limitación histórica de redirecciones no es prueba de que cada fallo moderno necesite un comando de descarga nuevo. Compruebe si el error actual es una redirección, autenticación de proxy, confianza en el certificado o simple accesibilidad. Conserve el hash esperado del archivo y la validación TLS mientras corrige la ruta correspondiente.

Artículos relacionados