Ошибки Visual Studio и cmake при компиляции openexr для Windows - PullRequest
1 голос
/ 13 марта 2019

Извиняюсь, потому что я довольно новичок и неопытен в этом, но я пытаюсь скомпилировать OpenExr-2.3.0 (скачанный из http://www.openexr.com/downloads.html и извлеченный в каталог 'exr_2_3_0') на Windows с cmake и Visual Студия 15. Я просто собираюсь изложить основные вопросы, которые у меня есть, прежде чем вдаваться в детали:

  1. Должна ли сборка ilmbase делать больше, чем просто создавать некоторые заголовочные файлы в соответствующем каталоге include? (Я знаю, что сборка 2.2.0 сделала, и я чувствую, что этого не хватает).
  2. Я не совсем понимаю, как сказать сборке openexr, где находятся эти заголовочные файлы. Кажется, никогда не удается найти их, поэтому я уверен, что либо строю их в неправильном месте, либо пропускаю шаг.

Файл README предлагает следующее:

  1. Запустите командное окно, перейдите в папку IlmBase с CMakeLists.txt и введите команду: setlocal del / f CMakeCache.txt cmake -DCMAKE_INSTALL_PREFIX = -G "Visual Studio 10 Win64" .. \ ilmbase

  2. Перейдите в папку IlmBase в проводнике Windows, откройте ILMBase.sln и постройте решение. Когда он будет успешно построен, щелкните правой кнопкой мыши УСТАНОВИТЬ проект и построить. Он установит вывод на путь, который вы настроить на предыдущем шаге.

  3. Перейдите на http://www.zlib.net и загрузите zlib

  4. Запустите командное окно, перейдите в папку OpenEXR с CMakeLists.txt и введите команду: setlocal del / f CMakeCache.txt cmake -DZLIB_ROOT = -DILMBASE_PACKAGE_PREFIX = -DCMAKE_INSTALL_PREFIX = -G "Visual Studio 10 Win64" ^ .. \ openexr

  5. Перейдите в папку OpenEXR в проводнике Windows, откройте OpenEXR.sln и постройте решение. Когда он будет успешно построен, щелкните правой кнопкой мыши УСТАНОВИТЬ проект и построить. Он установит вывод на путь, который вы настроить на предыдущем шаге.

Итак, я создаю папку развертывания внутри исходного каталога и из исходного каталога, который я запускаю:

cd ilmbase-2.3.0
setlocal
del /f CMakeCache.txt
cmake -DCMAKE_INSTALL_PREFIX="../deploy" -G "Visual Studio 15 Win64" ../ilmbase-2.3.0

При этом создается файл sln в папке ilmbase, который создается без ошибок, но проект установки внутри этого решения создает только несколько заголовочных файлов в папке 'source / deploy / include / OpenEXR'. Опять же, это все, что он должен делать, или в результате на этом этапе должен быть создан каталог lib с dll-файлами и т. Д.?

Я успешно собрал zlib без ошибок, но когда я пробую пункт 4, я сталкиваюсь с ошибками:

Ошибка CMake в IlmImfExamples / CMakeLists.txt: 3 (ADD_EXECUTABLE) Цель «IlmImfExamples» ссылается на цель «IlmBase :: IlmThread», но цель не был найден. Возможно, вызов find_package () отсутствует для ИМПОРТНАЯ цель или АЛИАС отсутствует?

Полагаю, мне следует добавить путь от cmake к новым файлам? Даже если я открою сгенерированный openexr.sln и попытаюсь скомпилировать, IlmImfExamples не сработает. Если я вручную добавлю файлы заголовков, которые он жалуется, он все равно не будет собираться, жалуясь, что он не может найти OpenEXR :: IlmImf.lib Это верно, что это не было построено, но я не знаю почему, или в по крайней мере, я не могу найти его, если есть.

Я видел эту ветку на github: https://github.com/openexr/openexr/issues/355 это говорит о наличии ошибок в CMakeLists.txt, который я также изменил. Но на этом этапе я быстро бью кирпичную стену знаний, поэтому любая помощь очень ценится.

Спасибо, Пэдди

...