1

我有一个在使用 .png 文件时可以正常运行的程序。
我正在尝试将其转换为支持 OpenEXR。

该程序使用 macports g++-mp-4.5 编译,并链接到 macports 的 openexr1.7。编译行的相关部分:

/opt/local/bin/g++-mp-4.5 ... -I/opt/local/include/OpenEXR -I/opt/local/include/OpenEXR file.cc ... -L/opt/local/lib - lIlmImf -lHalf ...

运行时,它会在尝试调用 exr 库时执行此操作:

libc++abi.dylib:终止调用抛出异常

当它更改为与 .a 文件 /opt/local/lib/libIlmImf.a /opt/local/lib/libHalf.a 链接时,会出现链接错误

架构 x86_64 的未定义符号:“Iex::throwErrnoExc(std::basic_string, std::allocator > const&)”,引用自:Imf::(anonymous namespace)::writeLineOffsets(Imf::OStream&, std::vector > const&) 在 libIlmImf.a(ImfOutputFile.o) Imf::StdIFStream::StdIFStream(char const*) 在 libIlmImf.a(ImfStdIO.o) Imf::(匿名命名空间)::checkError(std::basic_istream >&,长)在 libIlmImf.a(ImfStdIO.o)

经过搜索,似乎这个(*undefined symbols for x86_64*)是linux风格的mac开发的常见问题,而且似乎不是openexr特有的。但是在阅读了各种帖子之后,我仍然不明白解决方案是什么!

这是关于确切问题的帖子,但是解决方案的解释不够详细,我无法理解: http: //lists.nongnu.org/archive/html/openexr-devel/2011-08/msg00007.html

4

0 回答 0