Ошибка C1010 при использовании предварительных заголовков и добавления новых исходных файлов [Cmake] [Visual Studio]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка C1010 при использовании предварительных заголовков и добавления новых исходных файлов [Cmake] [Visual Studio]

Сообщение Anonymous »

У меня есть следующая задача: я включил предварительные заголовки для моего проекта Cmake с использованием target_precompile_headers ($ {application_name} private include/precompilled/pch.h) . Это сработало, однако только для недавно сгенерированного проекта. Если я хочу добавить новый исходный файл в свой проект, после генерации, он бросит эту ошибку CompiletTime: Ошибка C1010: неожиданный конец файла при поиске предварительно скомпилированного заголовка. Вы забыли добавить «#include» path/to/cmake_pch.hxx »к вашему источнику? . Единственное решение сейчас заключается в том, чтобы полностью восстановить проект после каждого нового исходного файла, который я добавляю. Это не может быть решением, верно? Кто -нибудь знает, что может быть исправлением?cmake_minimum_required(VERSION 3.20)
project(artisDX)
set(CMAKE_CXX_STANDARD 20)

message(STATUS "Configuring sources...")

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

set(APPLICATION_NAME "artisDX")

file(GLOB_RECURSE ARTISDX_SOURCES "src/*.cpp")
file(GLOB_RECURSE ARTISDX_HEADERS "include/*.h")

add_executable(${APPLICATION_NAME} ${ARTISDX_SOURCES} ${ARTISDX_HEADERS})

target_precompile_headers(${APPLICATION_NAME} PRIVATE include/precompiled/pch.h)

message(STATUS "Configuring external libraries...")

if(NOT EXISTS ${CMAKE_BINARY_DIR}/cmake/CPM.cmake)
file(DOWNLOAD https://github.com/cpm-cmake/CPM.cmake/ ... /CPM.cmake
${CMAKE_BINARY_DIR}/cmake/CPM.cmake
)
endif()

include(${CMAKE_BINARY_DIR}/cmake/CPM.cmake)

include(extern/glm.cmake)
include(extern/imgui.cmake)
include(extern/fastgltf.cmake)
include(extern/d3dx12.cmake)
include(extern/directxtex.cmake)

message(STATUS "External libraries configured successfully.")

# Add include directories
target_include_directories(${APPLICATION_NAME} PRIVATE include)

target_link_libraries(
${APPLICATION_NAME}
d3d12
dxgi
dxguid
D3DCompiler
DearImGui
fastgltf
DirectXTex
)

### Organization in VS ###
file(GLOB_RECURSE ARTISDX_SHADERS "shaders/*.fx")
set_source_files_properties(${ARTISDX_SHADERS} PROPERTIES HEADER_FILE_ONLY TRUE)
target_sources(${APPLICATION_NAME} PRIVATE ${ARTISDX_SHADERS})
source_group(TREE "${CMAKE_SOURCE_DIR}/shaders" PREFIX "shaders" FILES ${ARTISDX_SHADERS})

# Create filters
source_group(TREE "${CMAKE_SOURCE_DIR}/src" PREFIX "src" FILES ${ARTISDX_SOURCES})
source_group(TREE "${CMAKE_SOURCE_DIR}/include" PREFIX "include" FILES ${ARTISDX_HEADERS})

# Set artisDX as the startup project - only works for Visual Studio
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT artisDX)


Подробнее здесь: https://stackoverflow.com/questions/796 ... iles-cmake
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»