首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在cygwin中编译OpenEXR

在cygwin中编译OpenEXR
EN

Stack Overflow用户
提问于 2012-02-08 02:25:25
回答 1查看 2.3K关注 0票数 3

我正在尝试用cygwin编译OpenEXR,但我在做这件事时遇到了麻烦。

到目前为止,我所做的是:

代码语言:javascript
复制
cd ilmbase-X.X.X
./configure
make
make install
make check

我需要这个,因为这是OpenEXR需要的。它运行正常,并且在/usr/local中创建了三个文件夹:bininclude\OpenEXRlib

然后我转到OpenEXR,下面是我要做的:

代码语言:javascript
复制
cd openexr-X.X.X
./configure

一切运行正常,但当我执行make时,它给出了以下错误:

代码语言:javascript
复制
b44ExpLogTable.cpp:52:18: half.h: No such file or directory

虽然我不知道为什么会发生这种情况,但我可以通过这样做来解决它:

代码语言:javascript
复制
./configure CPPFLAGS=-I/usr/local/include/OpenEXR

但是,当我点击make时,又抛出了另一个错误,我被困在这里:

代码语言:javascript
复制
/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:481: undefined reference to `half::_eLut'
/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:511: undefined reference to `half::_toFloat'
/usr/local/include/OpenEXR/half.h:481: undefined reference to `half::_eLut'
/usr/local/include/OpenEXR/half.h:499: undefined reference to `half::convert(int)'
/usr/local/include/OpenEXR/half.h:481: undefined reference to `half::_eLut'
/usr/local/include/OpenEXR/half.h:499: undefined reference to `half::convert(int)'
/usr/local/include/OpenEXR/half.h:499: undefined reference to `half::convert(int)'
collect2: ld returned 1 exit status
<builtin>: recipe for target `b44ExpLogTable' failed
make[1]: *** [b44ExpLogTable] Error 1
make[1]: Leaving directory `/home/Andre/openexr-1.6.1/IlmImf'
Makefile:313: recipe for target `all-recursive' failed
make: *** [all-recursive] Error 1

这种情况会发生在任何人身上吗?我已经在谷歌上搜索了很多,但我找不到解决方案。我希望有人能帮上忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-14 13:58:44

我知道这有点老了,但它帮助我弄清楚了-I开关。

一旦我得到了答案,我就找到了你的问题的答案。您提供的是包含文件,而不是库本身,因此是undefined reference。使用:

./configure CPPFLAGS="-I/usr/local/include/OpenEXR -L/usr/local/bin -lHalf-6"

-L提供了库搜索目录,而-l提供了链接到程序的库。-lHalf-6表示文件/usr/local/bin/cygHalf-6.dll

我不能告诉你为什么图书馆在它的位置,但它是。

您可能还会遇到memset的另一个问题,可以在这里解决这个问题:http://lists.gnu.org/archive/html/openexr-user/2011-07/msg00002.html

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9181687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档