CMake успешно се конфигурира. Изградбата започнува подоцна, се обидува да преземе надворешна зависност и не успева на проксито. Претходниот успех можеби воопшто не го извел тоа преземање.

ExternalProject_Add() создава чекори што можат да се извршуваат за време на изградбата. Процесот што ги стартува тие чекори може да има поинаква околина од терминалот или IDE-то што го конфигурирале главниот проект. Оваа разлика лесно се пропушта во CI, каде конфигурацијата и компилацијата можат да бидат одделни задачи.

Лоцирајте ја мрежната операција

Не претпоставувајте дека поставката за прокси на една програма ги конфигурира сите три. Прочитајте ја командата и грешката на чекорот што не успеал пред да го промените URL-то на зависноста.

Ако избраниот преземaч поддржува променливи на околината за прокси, доставете ги до процесот што всушност го извршува тој чекор. За јавни преземања чиј клиент прифаќа HTTP прокси, списокот на HTTP прокси нуди кандидати за крајни точки кога тој пат е дозволен. Предавањето обична кеш-променлива на CMake со слично име не е автоматски исто како поставување променлива на околината на дете-процес.

Зачувајте ја и разликата од FetchContent: неговото вообичаено пополнување на зависности се случува за време на конфигурацијата, па рецептот што работи таму не ја потврдува околината на чекор за изградба на ExternalProject.

Стар одговор што препорачува прилагоден преземaч за да се заобиколи историско ограничување за пренасочување не е доказ дека секој современ неуспех бара нова команда за преземање. Проверете дали тековната грешка е пренасочување, автентикација на прокси, доверба во сертификат или едноставна достапност. Зачувајте го очекуваниот хаш на архивата и TLS валидацијата додека го поправате соодветниот пат.

Поврзани статии