C++11 freeimage 3.17在Mac OS X上构建库失败:使用C+失败+;11缩小误差。。。有什么想法吗? 没有对C++的任何理解(我在教自己SWIFT),我在这方面有点挣扎——但理想的是,我希望能够在我的项目中免费显示一些FixI图库的功能。

C++11 freeimage 3.17在Mac OS X上构建库失败:使用C+失败+;11缩小误差。。。有什么想法吗? 没有对C++的任何理解(我在教自己SWIFT),我在这方面有点挣扎——但理想的是,我希望能够在我的项目中免费显示一些FixI图库的功能。,c++11,osx-yosemite,freeimage,C++11,Osx Yosemite,Freeimage,似乎只有一个模块在生成任何错误:dcraw_common.cpp-错误行来自以下条目列表,其中的值为0x80或更高。根据我所做的调查,这些值对于有符号字符(最大128?)来说似乎太大了,但是列表中还包含负数,因此不能使用无符号字符 我们将非常感激您的任何帮助 以下是生成过程生成的错误消息示例: Source/LibRawLite/./internal/dcraw_common.cpp:4543:19: error: constant expression evaluates to 136

似乎只有一个模块在生成任何错误:dcraw_common.cpp-错误行来自以下条目列表,其中的值为0x80或更高。根据我所做的调查,这些值对于有符号字符(最大128?)来说似乎太大了,但是列表中还包含负数,因此不能使用无符号字符

我们将非常感激您的任何帮助

以下是生成过程生成的错误消息示例:

    Source/LibRawLite/./internal/dcraw_common.cpp:4543:19: error: constant expression evaluates to 136 which cannot be narrowed to type 'signed char'
    [-Wc++11-narrowing]
        +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
                      ^~~~
下面是代码:

    void CLASS vng_interpolate()
    {
      static const signed char *cp, terms[] = {
        -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01,
        -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01,
        -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
        -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
        -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
        -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
        -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
        -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
        -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
        -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
        -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
        -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
        -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
        +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
        +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
        +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
        +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
        +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
        +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
        +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
        +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
        +1,+0,+2,+1,0,0x10
      }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
    ...
C++11避免了这种情况。早期版本的C++将接受它们。我认为这个dcraw\u common.cpp的源代码补丁应该可以修复它

这里有一个重复的问题

C++11防止了这种情况。早期版本的C++将接受它们。我认为这个dcraw\u common.cpp的源代码补丁应该可以修复它


这里有一个重复的问题

对于这个问题,我找到的最有用的解决方案是以下GitHub帖子:。在这里,一些善良的灵魂似乎已经成功地构建了3.17.0库并上传了它。我发现这很好用

但是,请记住,它是用硬编码路径
/opt/local/lib
构建的,这在实现时可能是一个问题,因为您的应用程序将在那里查找它,而不是与应用程序捆绑。我发现这篇文章在这方面对我的理解有很大帮助


希望这能有所帮助。

我找到的解决此问题的最有用的解决方案是以下GitHub帖子:。在这里,一些善良的灵魂似乎已经成功地构建了3.17.0库并上传了它。我发现这很好用

但是,请记住,它是用硬编码路径
/opt/local/lib
构建的,这在实现时可能是一个问题,因为您的应用程序将在那里查找它,而不是与应用程序捆绑。我发现这篇文章在这方面对我的理解有很大帮助


希望这能有所帮助。

您可以将0x88改写为-120,对于所有出现错误的数字,您可以将0x88改写为-120,对于所有出现错误的数字,您也可以将0x88改写为-120。非常感谢。我应用了补丁,但仍有一行出错。类内adobe_系数:-短黑色,最大值,trans[12];+U黑色,最大值;+短反式[12];但在3.17 source中,要替换的行是:int t_black,t_max,trans[12];我将其替换为2个替换行,但出现以下错误:错误:重复成员“imgdata”ushort black,最大值;(将最大值指示为错误源)。我还尝试了make,但没有替换这一行,但是出现了C++11缩小错误。有什么想法吗?非常感谢。我应用了补丁,但仍有一行出错。类内adobe_系数:-短黑色,最大值,trans[12];+U黑色,最大值;+短反式[12];但在3.17 source中,要替换的行是:int t_black,t_max,trans[12];我将其替换为2个替换行,但出现以下错误:错误:重复成员“imgdata”ushort black,最大值;(将最大值指示为错误源)。我还尝试了make,但没有替换这一行,但是出现了C++11缩小错误。有什么想法吗?