CMake es configura correctament. La compilació comença més tard, intenta descarregar una dependència externa i falla al proxy. L'èxit anterior no necessàriament havia exercitat gens aquella descàrrega.

ExternalProject_Add() crea passos que poden executar-se durant la compilació. El procés que els llança pot tenir un entorn diferent del terminal o de l'IDE que va configurar el projecte principal. Aquesta diferència és fàcil de passar per alt a CI, on la configuració i la compilació poden ser tasques separades.

Localitzeu l'operació de xarxa

No suposeu que la configuració de proxy d'un programa en configura els tres. Llegiu l'ordre i l'error del pas que ha fallat abans de canviar l'URL de la dependència.

Si el descarregador triat admet variables d'entorn de proxy, proporcioneu-les al procés que executa realment aquell pas. Per a descàrregues públiques el client de les quals accepta un proxy HTTP, la llista de proxys HTTP ofereix candidats d'extrem quan aquesta ruta està permesa. Passar una variable de memòria cau de CMake corrent amb un nom semblant no és automàticament el mateix que definir una variable d'entorn del procés fill.

Manteniu també la distinció respecte de FetchContent: la seva població habitual de dependències passa durant la configuració, així que una recepta que hi funciona no estableix l'entorn d'un pas de compilació d'ExternalProject.

Una resposta antiga que recomanava un descarregador personalitzat per evitar una limitació històrica de redireccions no és prova que cada fallada moderna necessiti una ordre de descàrrega nova. Comproveu si l'error actual és una redirecció, autenticació de proxy, confiança en el certificat o simple accessibilitat. Conserveu el hash esperat de l'arxiu i la validació TLS mentre esmenes la ruta pertinent.

Articles relacionats