1

抱歉,因为我对此很陌生且缺乏经验,但我正在尝试在 Windows 上编译 OpenExr-2.3.0(从http://www.openexr.com/downloads.html下载并提取到“exr_2_3_0”目录)使用 cmake 和 Visual Studio 15。在详细介绍之前,我将概述我遇到的基本问题:

  1. ilmbase 构建应该做的不仅仅是在相关的包含目录中创建一些头文件吗?(我知道 2.2.0 构建确实如此,我觉得这是缺少的)。
  2. 我对如何告诉 openexr 构建这些头文件在哪里感到困惑。它似乎永远无法找到它们,所以我很确定我要么将它们构建到错误的位置,要么错过了一步。

自述文件建议以下内容:

  1. 启动命令窗口,使用 CMakeLists.txt 导航到 IlmBase 文件夹,然后键入命令: setlocal del /f CMakeCache.txt cmake -DCMAKE_INSTALL_PREFIX= -G "Visual Studio 10 Win64" ..\ilmbase

  2. 在 Windows 资源管理器中导航到 IlmBase 文件夹,打开 ILMBase.sln 并构建解决方案。构建成功后,右键单击安装项目并构建。它会将输出安装到您在上一步中设置的路径。

  3. 访问http://www.zlib.net并下载 zlib

  4. 启动命令窗口,使用 CMakeLists.txt 导航到 OpenEXR 文件夹,然后键入命令: setlocal del /f CMakeCache.txt cmake -DZLIB_ROOT= -DILMBASE_PACKAGE_PREFIX= -DCMAKE_INSTALL_PREFIX= -G "Visual Studio 10 Win64" ^ ..\openexr

  5. 在 Windows 资源管理器中导航到 OpenEXR 文件夹,打开 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

这会在 ilmbase 文件夹中构建一个 sln 文件,该文件构建时没有错误,但该解决方案中的安装项目只会在“source/deploy/include/OpenEXR”文件夹中创建一堆头文件。同样,这是它应该做的全部,还是应该有一个 lib 目录,其中包含在此阶段构建的 dll 文件等?

我已经成功构建了 zlib,没有任何错误,但是当我尝试第 4 点时,我遇到了以下错误:

IlmImfExamples/CMakeLists.txt:3 (ADD_EXECUTABLE) 目标“IlmImfExamples”链接到目标“IlmBase::IlmThread”的 CMake 错误,但未找到目标。也许 IMPORTED 目标缺少 find_package() 调用或缺少 ALIAS?

我猜我应该添加从 cmake 到新文件的路径?即使我打开生成的 openexr.sln 并尝试构建,IlmImfExamples 也无法构建。如果我手动添加它抱怨它仍然无法构建的头文件,抱怨它找不到 OpenEXR::IlmImf.lib 没有构建它是正确的,但我不知道为什么,或者在至少我找不到它,如果它有。

我确实在 github 上看到了这个线程: https ://github.com/openexr/openexr/issues/355 说 CMakeLists.txt 中存在错误,我也已更改。但是在这个阶段,我很快就碰到了一堵知识的砖墙,所以非常感谢任何帮助。

谢谢,稻田

4

0 回答 0