В предварительном сценарии lua для моего решения. Как настроить его для создания «/Yc» phc вместо использования «/Yu» при первой инициализации.
Я просмотрел онлайн-документацию и попробовал другие справочные сайты. Я не могу найти никакой помощи.
Я предполагаю, что это вариант сборки, но пробовал buildoptions { "/Yc" }
Некоторая помощь была бы очень востребована?
Да, я отвечу на него ниже и отмечу как ответ





вам нужно указать
pchheader('StdAfx.h')
а также
pchsource('StdAfx.cpp')
Спасибо за ответ. Я уже разместил эти ссылки на расположение файлов в своем коде, используя pchheader и «pchsource». Однако проблема заключается в том, что вместо того, чтобы установить для параметра «предварительно скомпилированный заголовок» значение «Создать (/Yc)», он устанавливает для него значение «Использовать (/Yu)». При первой настройке и сборке Premake должен установить для этого параметра значение «Создать (/Yc)», и после создания решения VS автоматически изменит его на «Использовать (/Yu)», но Premake изначально устанавливает этот параметр на «Использовать (/Yu)». )"
Я буду следить за этим @Mihai
Решение состояло в том, чтобы указать правильный путь к исходному файлу.
premake5.lua
pchheader "awepch.h"
pchsource "%{prj.name}/Src/awepch.cpp" // this is where the source file is located on disk
* Также обязательно, чтобы вы использовали правильный регистр для символов. Если вы используете «pch.h» для имени файла на диске, это должно быть имя файла в этом разделе вашего сценария «premake5.lua».
Извините, что так долго не могу ответить :)
Я тоже решил это. Но мое решение состояло в том, чтобы жестко закодировать имя проекта вместо использования %{prj.name} при указании pchsource. Странное поведение.
Рад, что вы решили это. По сравнению с C Make, Premake прост, чист и удобен, приятного кодирования :)
Для текущей версии premake v5. 0.0-бета1 необходимо сделать следующее, чтобы предварительно скомпилированный заголовок работал во всех IDE (особенно для Visual Studio):
Поместите оба pch.h и pch.cpp в корневой каталог вашего проекта (не в решение/рабочее пространство).
Установите точное имя (не путь) пч.ч на pchheader().
Установите полный путь pch.cpp относительно скрипта premake5.lua в pchsource(). Это ВАЖНЫЙ. Я не знаю почему, но если вы не укажете полный относительный путь, то premake будет Используйте (/Ю) (использовать предварительно скомпилированный заголовок) к phc.cpp вместо Создать (/Yc) (создать предварительно скомпилированный заголовок), что приводит к тому, что предварительно скомпилированный заголовок не будет создан в Визуальная студия.
Включите каталог, где pch.h и pch.cpp находятся в includedirs()
#include "pch.h"В КАЖДОМ.cpp файла в вашем проекте, В ПЕРВОЙ ЛИНИИ каждого файла .cpp. Помните: #include "pch.h", "пч.ч" должен точно совпадать со строкой, которую вы установили в pchheader() в вашем скрипте premake5.lua.
Если у вас есть файлы .с, вместо этого вы переименовываете их с ДОЛЖЕН в .cpp, иначе Visual Studio будет жаловаться на использование предварительно скомпилированного заголовка, который был скомпилирован с помощью компилятора C++.
Я знаю, что это слишком сложно, но это так.
Пример:
project "LearnGL"
location "Projects/LearnGL/"
kind "ConsoleApp"
language "C++"
targetdir "builds/"
objdir "obj/%{prj.name}_%{cfg.shortname}"
pchheader "pch.h" --Do not use paths here. Use directly the header file name
pchsource "Projects/LearnGL/src/pch.cpp" --Full path MUST be specified relative to the premake5.lua (this) script.
files {
"Projects/LearnGL/src/**.h",
"Projects/LearnGL/src/**.hpp",
"Projects/LearnGL/src/**.cpp"
}
includedirs {
"Projects/LearnGL/src/", --This is where pch.h and pch.cpp are located.
"Projects/LearnGL/src/external/glad/include/",
"Projects/LearnGL/src/external/stb_image/include/",
"External/glfw/include/",
"External/spdlog/include/"
}
Привет! Вы нашли решение для этого? У меня такая же проблема с Premake5, когда он не может настроить файл pch.cpp для создания и вместо этого устанавливает его для использования. Это очень расстраивает.