Извиняюсь, потому что я довольно новичок и неопытен в этом, но я пытаюсь скомпилировать OpenExr-2.3.0 (скачанный из http://www.openexr.com/downloads.html и извлеченный в каталог 'exr_2_3_0') на Windows с cmake и Visual Студия 15. Я просто собираюсь изложить основные вопросы, которые у меня есть, прежде чем вдаваться в детали:
- Должна ли сборка ilmbase делать больше, чем просто создавать некоторые заголовочные файлы в соответствующем каталоге include? (Я знаю, что сборка 2.2.0 сделала, и я чувствую, что этого не хватает).
- Я не совсем понимаю, как сказать сборке openexr, где находятся эти заголовочные файлы. Кажется, никогда не удается найти их, поэтому я уверен, что либо строю их в неправильном месте, либо пропускаю шаг.
Файл README предлагает следующее:
Запустите командное окно, перейдите в папку IlmBase с CMakeLists.txt и введите команду: setlocal del / f CMakeCache.txt cmake
-DCMAKE_INSTALL_PREFIX = -G "Visual Studio 10 Win64" .. \ ilmbase
Перейдите в папку IlmBase в проводнике Windows, откройте ILMBase.sln и постройте решение. Когда он будет успешно построен, щелкните правой кнопкой мыши
УСТАНОВИТЬ проект и построить. Он установит вывод на путь, который вы
настроить на предыдущем шаге.
Перейдите на http://www.zlib.net и загрузите zlib
Запустите командное окно, перейдите в папку OpenEXR с CMakeLists.txt и введите команду: setlocal del / f CMakeCache.txt cmake
-DZLIB_ROOT = -DILMBASE_PACKAGE_PREFIX = -DCMAKE_INSTALL_PREFIX = -G "Visual Studio 10 Win64" ^ .. \ openexr
Перейдите в папку 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, который я также изменил. Но на этом этапе я быстро бью кирпичную стену знаний, поэтому любая помощь очень ценится.
Спасибо,
Пэдди