首页 > 其他分享 >FreeImage编译arm组件

FreeImage编译arm组件

时间:2024-08-28 16:56:39浏览次数:7  
标签:0x40 FreeImage 0x01 dsp 0x10 char 0x04 组件 arm

1、 Linux使用的是Makefile.gnu

2、对于make中的这种错误

Source/LibRawLite/./internal/dcraw_common.cpp:2501:3: error: narrowing conversion of ‘-3’ from ‘int’ to char’ inside { } [-Wnarrowing]

在编译文件中添加:

 3、 对于整数转转换的错误

dcraw_common.cpp:4546:3: 错误:在 {} 内将‘128’从‘int’转换为较窄的类型‘signed char’ [-Wnarrowing]

将文件中这部分代码进行修改:

4536   static const signed char *cp, terms[] = {
4537     -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01,
4538     -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01,
4539     -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
4540     -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
4541     -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
4542     -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
4543     -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
4544     -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
4545     -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
4546     -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
4547     -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
4548     -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
4549     -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
4550     +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
4551     +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
4552     +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
4553     +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
4554     +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
4555     +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
4556     +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
4557     +1,-1,+1,+1,0,+1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
4558     +1,+0,+2,+1,0,0x10
4559   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };

修改成:

4536   static const signed char *cp, terms[] = {
4537     -2,-2,+0,-1,0,(char)0x01, -2,-2,+0,+0,1,(char)0x01, -2,-1,-1,+0,0,(char)0x01,
4538     -2,-1,+0,-1,0,(char)0x02, -2,-1,+0,+0,0,(char)0x03, -2,-1,+0,+1,1,(char)0x01,
4539     -2,+0,+0,-1,0,(char)0x06, -2,+0,+0,+0,1,(char)0x02, -2,+0,+0,+1,0,(char)0x03,
4540     -2,+1,-1,+0,0,(char)0x04, -2,+1,+0,-1,1,(char)0x04, -2,+1,+0,+0,0,(char)0x06,
4541     -2,+1,+0,+1,0,(char)0x02, -2,+2,+0,+0,1,(char)0x04, -2,+2,+0,+1,0,(char)0x04,
4542     -1,-2,-1,+0,0,(char)0x80, -1,-2,+0,-1,0,(char)0x01, -1,-2,+1,-1,0,(char)0x01,
4543     -1,-2,+1,+0,1,(char)0x01, -1,-1,-1,+1,0,(char)0x88, -1,-1,+1,-2,0,(char)0x40,
4544     -1,-1,+1,-1,0,(char)0x22, -1,-1,+1,+0,0,(char)0x33, -1,-1,+1,+1,1,(char)0x11,
4545     -1,+0,-1,+2,0,(char)0x08, -1,+0,+0,-1,0,(char)0x44, -1,+0,+0,+1,0,(char)0x11,
4546     -1,+0,+1,-2,1,(char)0x40, -1,+0,+1,-1,0,(char)0x66, -1,+0,+1,+0,1,(char)0x22,
4547     -1,+0,+1,+1,0,(char)0x33, -1,+0,+1,+2,1,(char)0x10, -1,+1,+1,-1,1,(char)0x44,
4548     -1,+1,+1,+0,0,(char)0x66, -1,+1,+1,+1,0,(char)0x22, -1,+1,+1,+2,0,(char)0x10,
4549     -1,+2,+0,+1,0,(char)0x04, -1,+2,+1,+0,1,(char)0x04, -1,+2,+1,+1,0,(char)0x04,
4550     +0,-2,+0,+0,1,(char)0x80, +0,-1,+0,+1,1,(char)0x88, +0,-1,+1,-2,0,(char)0x40,
4551     +0,-1,+1,+0,0,(char)0x11, +0,-1,+2,-2,0,(char)0x40, +0,-1,+2,-1,0,(char)0x20,
4552     +0,-1,+2,+0,0,(char)0x30, +0,-1,+2,+1,1,(char)0x10, +0,+0,+0,+2,1,(char)0x08,
4553     +0,+0,+2,-2,1,(char)0x40, +0,+0,+2,-1,0,(char)0x60, +0,+0,+2,+0,1,(char)0x20,
4554     +0,+0,+2,+1,0,(char)0x30, +0,+0,+2,+2,1,(char)0x10, +0,+1,+1,+0,0,(char)0x44,
4555     +0,+1,+1,+2,0,(char)0x10, +0,+1,+2,-1,1,(char)0x40, +0,+1,+2,+0,0,(char)0x60,
4556     +0,+1,+2,+1,0,(char)0x20, +0,+1,+2,+2,0,(char)0x10, +1,-2,+1,+0,0,(char)0x80,
4557     +1,-1,+1,+1,0,+1,+0,+1,+2,0,(char)0x08, +1,+0,+2,-1,0,(char)0x40,
4558     +1,+0,+2,+1,0,(char)0x10
4559   }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };

4 对于这个错误

Source/LibRawLite/./internal/dcraw_common.cpp:6940:97: error: call of overloaded ‘powf64(int, int)’ is ambiguous
                     10*(table_buf[iLensData+9]>>2) * powf64(4, (table_buf[iLensData+9] & 0x03)-2);

修改对应位置:4改成4.f

 if (table_buf[iLensData+9] && (fabs(imgdata.lens.makernotes.CurFocal) < 0.1f))
  imgdata.lens.makernotes.CurFocal = 10*(table_buf[iLensData+9]>>2) * powf64(4.f, (table_buf[iLensData+9] & 0x03)-2);

5 对于错误

Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:37:34: error: invalid character ' ' in raw string delimiter
       "shll_s.w         %["#R"],      %["#R"],        9              \n\t"     \
                             ^     
Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:37:48: error: invalid character ' ' in raw string delimiter
       "shll_s.w         %["#R"],      %["#R"],        9              \n\t"     \
                                           ^     
Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:40:34: error: invalid character ' ' in raw string delimiter
       "precrqu_s.qb.ph  %["#R"],      %["#R"],        $zero          \n\t"     \
                             ^     
Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:40:48: error: invalid character ' ' in raw string delimiter
       "precrqu_s.qb.ph  %["#R"],      %["#R"],        $zero          \n\t"     \
                                           ^     
Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:43:34: error: invalid character ' ' in raw string delimiter
       "srl              %["#R"],      %["#R"],        24             \n\t"     \
                             ^     
Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:43:48: error: invalid character ' ' in raw string delimiter
       "srl              %["#R"],      %["#R"],        24             \n\t"     \

修改这个文件的对应位置:dsp.upsampling_mips_dsp_r2.c 将R改成Red

 Source/LibWebP/./src/dsp/dsp.yuv_mips_dsp_r2.c:57:35: error: unterminated raw string
   "sb               %[temp5],   "#R"(%[dst])

 6 fpic的问题

1-5修改后已经没有语法错误但是无法编译输出,提示:

Source/LibRawLite/./src/libraw_datastream.o: In function `LibRaw_abstract_datastream::LibRaw_abstract_datastream()':
libraw_datastream.cpp:(.text._ZN26LibRaw_abstract_datastreamC2Ev[_ZN26LibRaw_abstract_datastreamC5Ev]+0x8): dangerous relocation: unsupported relocation
/usr/bin/ld: Source/LibRawLite/./src/libraw_datastream.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZTV26LibRaw_abstract_datastream' which may bind externally can not be used when making a shared object; recompile with -fPIC
Source/LibRawLite/./src/libraw_datastream.o: In function `LibRaw_abstract_datastream::~LibRaw_abstract_datastream()':
libraw_datastream.cpp:(.text._ZN26LibRaw_abstract_datastreamD2Ev[_ZN26LibRaw_abstract_datastreamD5Ev]+0xc): dangerous relocation: unsupported relocation
collect2: error: ld returned 1 exit status
Makefile.gnu:71: recipe for target 'libfreeimage-3.17.0.so' failed
make[1]: *** [libfreeimage-3.17.0.so] Error 1
make[1]: Leaving directory '/FreeImage'
Makefile:23: recipe for target 'default' failed
make: *** [default] Error 2

 

标签:0x40,FreeImage,0x01,dsp,0x10,char,0x04,组件,arm
From: https://www.cnblogs.com/8335IT/p/18385089

相关文章

  • tkinter基础组件——Lable
    在tkinter中,Label组件可以在窗口上显示文本或图像。通常用于显示静态信息,比如标题、描述、状态消息等不可编辑的显示框。下面具体介绍Lable组件常用的属性和方法:一、常用属性1、text:设置标签显示的文本set_lable=tk.Label(app,text='origintext')2、bg:设置背景色s......
  • Python开发工具:PyCharm
    本文是Python系列教程第2篇,更多内容敬请访问我的Python合集1安装官网下载地址https://www.jetbrains.com.cn/pycharm/,文件比较大(约861MB)请耐心等待双击exe安装安装成功后会有一个30天的试用期,激活教程见先插个眼,有空更新激活教程2创建第一个项目图中这句话的意思......
  • 基于surging的木舟IOT平台如何添加网络组件
     一、概述         为了弥补代码的遗失,木舟IOT平台正在加班加点进行研发,后面不只是针对于IOT设备接入上报,告警,视频管理,组态数据可视化大屏,后面还会有快速搭建微服务平台,利用surging.cli工具根据数据库表生成微服务,中间服务,能让程序员快速完成BOSS交给的任务,从而在......
  • Redis组件介绍(一)
    写在前面今天我们来学习一下Redis。Redis是一个高性能的开源内存数据存储系统,支持多种数据结构,如字符串、列表、集合、有序集合和哈希表。#NoSQL概述随着大数据的兴起,数据量的暴增,数据类型的丰富,传统的关系数据库在应付动态网站,特别是超大规模和高并发的纯动态网站时已经......
  • vue3 常用的几种组件通讯方式
    vue3常用的几种组件通讯方式,大致如下Props/EmitPinia事件总线(mitt)Provide/Inject浏览器本地存储 1.Props/Emit注释:prop属性名称/方法名称的格式,采用 camelCase 与 kebab-case。 1.1props(1)上游组件设置 prop 值(通过v-bind或冒号) 或者 (2)下游......
  • 深度解析HarmonyOS SDK实况窗服务源码,Get不同场景下的多种模板
    HarmonyOSSDK实况窗服务(LiveViewKit)作为一个实时呈现应用服务信息变化的小窗口,遍布于设备的各个使用界面,它的魅力在于将复杂的应用场景信息简洁提炼并实时刷新,在不影响当前其他应用操作的情况下,时刻向用户展示最新的信息动态,用户也可以点击实况窗卡片或胶囊进入应用落地页查看......
  • 使用 nuxi add 快速创建 Nuxt 应用组件
    title:使用nuxiadd快速创建Nuxt应用组件date:2024/8/28updated:2024/8/28author:cmdragonexcerpt:通过使用nuxiadd命令,你可以快速创建Nuxt应用中的各种实体,如组件、页面、布局等。这可以极大地提高开发效率,减少手动创建文件的工作量。希望本文的示例和解释......
  • 鸿蒙harmonyOS HDC环境配置
    HDC下载官方下载渠道:......
  • vue:父子组件的通信
    上一篇:vue组件化开发在上一篇文章中,我们申明了一点,那就是组件之间是独立的,除非构建了通信。组件间为什么要构建通信?在单一文件中写上整个网站的代码逻辑,这无疑使得维护成本巨大。所以我们选择了组件化开发,把组件间独立起来,这样谁也不干涉谁,是谁的逻辑就在谁的文件中实现......
  • 【PyQt5 应用程序】PyQt基础组件:按钮
    在任何图形用户界面(GUI)应用程序中,按钮是最基本也是最频繁使用的组件之一。它们是用户与应用程序交互的主要方式之一。在PyQt中,按钮可以通过QPushButton类创建,它提供了丰富的功能,包括显示文本、图像,以及响应点击事件。本节将引导你了解如何在PyQt应用中创建和使用按钮,并通过......