Как я могу устранить ошибку сборки OpenEXR в Windows?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу устранить ошибку сборки OpenEXR в Windows?

Сообщение Anonymous »


Сейчас я пытаюсь настроить один из моих проектов git на рабочем столе. В качестве подмодуля у меня есть OpenEXR, однако при попытке собрать проект я получаю ошибку сборки:

ОШИБКА: ext_build/openexr/OpenEXR/IlmImf/b44ExpLogTable.h C:/Users/matts/Documents/Projects/CPP/nori_acg/cmake-build-debug/ext_build/openexr/OpenEXR/IlmImf/b44ExpLogTable. час cmd.exe /C "cd /D C:\Users\matts\Documents\Projects\CPP\nori_acg\cmake-build-debug\ext_build\openexr\OpenEXR\IlmImf && «C:\Program Files\JetBrains\CLion 2023.2.1\bin\cmake\win\x64\bin\cmake.exe» -E env PATH=C:/Users/matts/Documents/Projects/CPP/nori_acg/cmake-build-debug/ext_build/openexr/IlmBase/Half; C:/Users/matts/Documents/Projects/CPP/nori_acg/cmake-build-debug/ext_build/openexr/IlmBase/IlmThread; C:/Users/matts/Documents/Projects/CPP/nori_acg/cmake-build-debug/ext_build/openexr/IlmBase/Iex C:/Users/matts/Documents/Projects/CPP/nori_acg/cmake-build-debug/ext_build/openexr/OpenEXR/IlmImf/b44ExpLogTable.exe > C:/Users/matts/Documents/Projects/CPP/nori_acg/cmake-build-debug/ext_build/openexr/OpenEXR/IlmImf/b44ExpLogTable.h" Код выхода 0xc0000135 Должен отметить, что этот проект работает на моем ноутбуке с Linux.

Я попытался удалить папку cmake-build-debug и повторить попытку, но ничего не изменилось. После ручного ввода команды в Powershell я получил ошибку: Неверный синтаксис имени файла, имени каталога или метки тома.

Однако я проверил все файлы и папки, упомянутые в команде, и все они присутствуют... Я видел в Интернете, что это может быть вызвано отсутствием файла Half.dll, который я действительно не нашел в папке сборки openexr, вот содержимое каталога Half: Каталог: C:\Users\matts\Documents\Projects\CPP\nori_acg\cmake-build-debug\ext_build\openexr\IlmBase\Half Режим LastWriteTime Длина Имя ---- ------------- ------ ---- d----- 10.05.2023 18:12 CMakeFiles -a---- 10.05.2023 18:12 2096 cmake_install.cmake -a---- 10.05.2023 18:12 64074 eLut.exe -a---- 10.05.2023 18:12 4047 eLut.h -a---- 10.05.2023 18:12 290528 libHalf.a -a---- 10.05.2023 18:12 70657 toFloat.exe -a---- 10.05.2023 18:12 1015887 toFloat.h Если я не ошибаюсь, файлы .a — это статические библиотеки для Linux, но поскольку я создавал их для Windows, я не совсем понимаю, почему они здесь...

Если у кого-то есть идеи, как мы могли бы решить эту проблему, я был бы рад их услышать, мне бы просто хотелось не изменять cmake OpenEXR, поскольку это подмодуль.

Спасибо, что уделили время! ;)
Изменить:
Изначально cmake был включен в исходный проект, на котором основан этот проект. Я не эксперт в cmake, поэтому вот части файлов cmake, которые зависят от системы, если это может помочь: (Я использую набор инструментов CLion по умолчанию (MinGW) вместе с системой сборки CLion по умолчанию (ninja))

nori_acg/CMakeLists.txt:

если (WIN32) target_link_libraries(nori tbb_static pugixml IlmImf nanogui ${NANOGUI_EXTRA_LIBS} zlibstatic) еще() target_link_libraries(nori tbb_static pugixml IlmImf nanogui ${NANOGUI_EXTRA_LIBS}) конециф() nori_acg/ext/CMakeLists.txt:

# Очистка среды сборки для статической сборки с помощью C++11 если (МСВК) # Отключить раздражающие предупреждения безопасного CRT set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D_CRT_SECURE_NO_WARNINGS") # Библиотеку TBB мы выберем сами set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D__TBB_NO_IMPLICIT_LINKAGE") # Параллельная сборка на MSVC (все цели) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") если (НЕ CMAKE_SIZEOF_VOID_P РАВНО 8) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2") # Отключить векторизацию собственных значений для 32-битных сборок Windows (проблемы с ошибками сегментирования невыровненного доступа) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DEIGEN_DONT_ALIGN") конециф() # Статическая сборка set(CompilerFlags CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) Еогеасп(CompilerFlag ${CompilerFlags}) строка(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") endforeach() конециф() если (WIN32) # Сборка zlib (только в Windows) set(ZLIB_BUILD_STATIC_LIBS ON CACHE BOOL " " FORCE) set(ZLIB_BUILD_SHARED_LIBS OFF CACHE BOOL " " FORCE) add_subdirectory (zlib) set(ZLIB_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/zlib" CACHE PATH " " FORCE) если (CMAKE_GENERATOR STREQUAL «Ниндзя») set(ZLIB_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/zlib/zlibstatic.lib" CACHE FILEPATH " " FORCE) еще() set(ZLIB_LIBRARY "${CMAKE_CURRENT_BINARY_DIR}/zlib/$/zlibstatic.lib" CACHE FILEPATH " " FORCE) конециф() set_property(TARGET zlibstatic ПАПКА СВОЙСТВ «зависимости») include_directories(${ZLIB_INCLUDE_DIR} "${CMAKE_CURRENT_BINARY_DIR}/zlib") конециф() ** Редактировать 2: **

Я нашел временное решение, создав Visual Studio, но мне пришлось добавить #include в один из файлов openEXR, поскольку msvc... Однако я все еще открыт для компиляции других идей на MinGW!
Ответить

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

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

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

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

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