Программы на C++. Форум разработчиков
Anonymous
Windres: ошибка компиляции ресурсов, если в пути есть места
Сообщение
Anonymous » 11 фев 2025, 19:04
Проект Mingw+qt6+Cmake+Ninja зависит от библиотеки, которая, согласно стандарту, устанавливается в 'C: \ Program Files \ somelib'. Невозможно изменить путь установки < /p>
Код: Выделить всё
cmake_minimum_required(VERSION 3.16)
project(untitled_qt6 VERSION 0.1 LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
qt_standard_project_setup()
include_directories("C:/Program Files/somelib/include")
find_library(SOMELIB NAMES somelib PATHS "C:/Program Files/somelib/lib" REQUIRED NO_SYSTEM_ENVIRONMENT_PATH)
set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/icon.rc")
set(PROJECT_SOURCES
main.cpp
mainwindow.cpp
mainwindow.h
${app_icon_resource_windows}
)
qt_add_executable(untitled_qt6
MANUAL_FINALIZATION
${PROJECT_SOURCES}
)
target_link_libraries(untitled_qt6 PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets
${SOMELIB}
)
set_target_properties(untitled_qt6 PROPERTIES WIN32_EXECUTABLE TRUE)
qt_finalize_executable(untitled_qt6)
< /code>
Существует известная ошибка с передачей пути < /p>
cc1.exe: fatal error: Files/somelib: No such file or directory
< /code>
, которые можно решить путем прохождения пути следующим образом. < /p>
windres -I\""C:/Program Files/somelib/include\""
Есть ли способ вмешиваться в процесс сборки или решить эту проблему другим способом, не изменяя путь к библиотеке?
Подробнее здесь:
https://stackoverflow.com/questions/774 ... n-the-path
1739289886
Anonymous
Проект Mingw+qt6+Cmake+Ninja зависит от библиотеки, которая, согласно стандарту, устанавливается в 'C: \ Program Files \ somelib'. Невозможно изменить путь установки < /p> [code]cmake_minimum_required(VERSION 3.16) project(untitled_qt6 VERSION 0.1 LANGUAGES CXX) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) qt_standard_project_setup() include_directories("C:/Program Files/somelib/include") find_library(SOMELIB NAMES somelib PATHS "C:/Program Files/somelib/lib" REQUIRED NO_SYSTEM_ENVIRONMENT_PATH) set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/icon.rc") set(PROJECT_SOURCES main.cpp mainwindow.cpp mainwindow.h ${app_icon_resource_windows} ) qt_add_executable(untitled_qt6 MANUAL_FINALIZATION ${PROJECT_SOURCES} ) target_link_libraries(untitled_qt6 PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ${SOMELIB} ) set_target_properties(untitled_qt6 PROPERTIES WIN32_EXECUTABLE TRUE) qt_finalize_executable(untitled_qt6) < /code> Существует известная ошибка с передачей пути < /p> cc1.exe: fatal error: Files/somelib: No such file or directory < /code> , которые можно решить путем прохождения пути следующим образом. < /p> windres -I\""C:/Program Files/somelib/include\"" [/code] Есть ли способ вмешиваться в процесс сборки или решить эту проблему другим способом, не изменяя путь к библиотеке? Подробнее здесь: [url]https://stackoverflow.com/questions/77438208/windres-resource-compilation-error-if-there-are-spaces-in-the-path[/url]