Microsoft предлагает только свой последний установщик VisualStudioSetup.exe для версии сообщества, которая на момент написания VS2022: https://visualstudio.microsoft.com/vs/older-downloads/
И я не могу скомпилировать с ним совместимый PHP-бинарный файл.
Проблема, с которой я столкнулся, заключается в том, что когда вы компилируете PHP из исходного кода (PHP 8.1, PHP 8.2, PHP 8.3), он связан с MSVC 14.40. При загрузке с https://windows.php.net он связан с MSVC 14.29.
Поэтому самокомпилированные расширения PECL несовместимы с загруженным двоичным файлом PHP.
Они не будут загружаться при запуске со следующим сообщением:
Предупреждение: PHP Startup: Can't load module 'php_jsmin.dll' as it's linked with 14.40, but the core is linked with 14.29 in Unknown on line 0
Это относится ко всем самокомпилируемым расширениям, а не только к jsmin.
Я не могу установить только MSVC 14.29, потому что PHP нуждается в двух компонентах:
Инструменты C++ CMake для Windows имеют чертовски зависимость:
Среда компиляции php теперь всегда связана с версией 14.40. Это не было проблемой с установкой Visual Studio 2019, но Microsoft запрещает загружать старые версии сообщества. Вы можете загрузить установку Visual Studio 2022 только с указанной выше проблемой зависимостей.
Как я могу связать MSVC 14.29 при использовании установки Visual Studio 2022 для компиляции PHP из исходного кода.
Заранее большое спасибо!
@IanKemp О боже, это сработало безупречно! Вы, сэр, мой личный герой :D Почему MS не может просто предложить их на своей странице загрузки? Кажется, это темная закономерность ^^ Если вы сформулируете это как ответ, я приму это как ответ.
@IanKemp, я добавлю ответ к твоему комментарию. Если вы позже добавите ответ самостоятельно, я изменю его на принятый.
Отказ от ответственности: это ответ из комментария @IanKemp.
По сути, не существует известного способа (по крайней мере, для меня) изменить поведение среды компиляции php.
Но есть простой способ вообще обойти эту проблему. Просто загрузите старую версию VisualStudioSetup.exe Community Edition 2019, где MSVC 14.29 является последней версией MSVC.
Его можно скачать здесь: https://download.visualstudio.microsoft.com/download/pr/93f24e82-778c-46ae-92f9-8d3010ecd011/a5da04d78b1f94ab145a365733476df7a1ec6219fa17f09c7e2f3c7cd74d9c9 e/vs_Community.exe
Альтернатива
Я нашел непринятый ответ, который даже обеспечивает более структурированную загрузку и даже более старые версии VS: https://stackoverflow.com/a/78644904/1519125
Спасибо @andrés-lópez
Я не могу/не буду называть его дубликатом, поскольку ответ, о котором я говорю, не является принятым. Вот содержание:
Здесь вы также можете скачать другие версии:
Попробуйте
https://download.visualstudio.microsoft.com/download/pr/93f24e82-778c-46ae-92f9-8d3010ecd011/a5da04d78b1f94ab145a365733476df7a1ec6219fa17f09c7e2f3c7cd74d9c9e/vs_Community.exe
, что должно дать вам сообщество VS 2019.