当前位置: 首页 > news >正文

北京网站制作网站优化太原建网站

北京网站制作网站优化,太原建网站,东莞做网站公司哪家比较好,计算机网络技术就业公司Linux(ubuntu系统)下使用FreeImage库Linux(ubuntu系统)下使用FreeImage库最近在搞一个图像处理的项目#xff0c;需要用到FreeImage#xff0c;之前在Windows下用过#xff0c;很简单#xff0c;因为FreeImage官网提供了可供使用的静态库动态库#xff0c;直接包含就行了。…Linux(ubuntu系统)下使用FreeImage库Linux(ubuntu系统)下使用FreeImage库最近在搞一个图像处理的项目需要用到FreeImage之前在Windows下用过很简单因为FreeImage官网提供了可供使用的静态库动态库直接包含就行了。现在需要在Linux平台下使用发现官网并没有提供直接编译好的库需要自己编译。安装过程也遇到好几个大坑所幸终于解决了。记录一下自己下载编译安装的步骤1. 下载FreeImage源码http://freeimage.sourceforge.net/download.html这是官网选择下面这个Source distributionSource distribution includes source for FreeImage, C, C#, Delphi and VB6 wrappers, examples and the internally used libraries LibTIFF, LibJPEG, LibPNG, ZLib, OpenEXR, OpenJPEG, LibRaw, LibJXR and LibWebP.Download FreeImage 3.17.0下载即可下载完解压得到FreeImage这个文件夹。2. 既然是要自己编译那么肯定是要用到makefile文件打开FreeImage文件夹可以看到里面有很多makefile的文件只是后缀不一样罢了这些其实只是给不同的系统环境下用的而已继续在文件夹中找可以看到一个叫做“README.linux”的文件这就是关于在linux下如何安装使用的说明文档了打开它按照里面的说明来操作。摘录一些重要的信息1)为了编辑和使用FreeImage库你不需要在你的电脑/usr/lib directory目录下安装任何third party libraries。2)为了避免internal third party libraries和系统库之间的不兼容FreeImage makefile使用了gcc的-fvisibilityhidden选项如果你使用的是老版本的gcc你可能得先移除这个选项3)在库编辑安装之后你应该可以使用-lfreeimage option来link programs。You can also statically link with libfreeimage.a.4) 安装FreeImage------------注意你需要获得root权限才可以在/usr/lib目录下安装库安装步骤很简单如下:1) Enter the FreeImage directory2) Build the distribution :makemake install3) Clean all files produced during the build processmake clean可以看到安装使用的方式其实很简单就是(1)在FreeImage的目录下右键打开终端先输入make命令进行编译。(2)编译好之后使用make install将编译好的头文件FreeImage.h写进系统的/usr/include目录下把库文件libfreeimage.o给写进系统的/usr/lib目录下。(3)然后执行make clean清除刚才编译生成的那些中间文件即可。但是并没有想当然的那么简单首先输入make命令是正常在编译了但是编译完之后提示了下面的错误dsp.upsampling_mips_dsp_r2.oSource/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:37:34: error: invalid character in raw string delimitershll_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 delimitershll_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 delimiterprecrqu_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 delimiterprecrqu_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 delimitersrl %[#R], %[#R], 24 \n\t^Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.c:43:48: error: invalid character in raw string delimitersrl %[#R], %[#R], 24 \n\t^Makefile.gnu:61: recipe for target Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.o failedmake[1]: *** [Source/LibWebP/./src/dsp/dsp.upsampling_mips_dsp_r2.o] Error 1make[1]: Leaving directory /home/jianqiang/Documents/FreeImageMakefile:21: recipe for target default failedmake: *** [default] Error 2Error的内容是invalid character ub raw string delimiter.意思是原始字符串分隔符中有无效字符。产生这个错误的原因是编译器支持了C11的新标准在C 11中引入了原始字符串这样一个新特性使用R等方式来定义一个不进行转义的字符串。而在FreeImage的一些代码中却使用了R作为一些宏函数的参考所以在FreeImage中那些被当成了原始字符串从而产生了错误。定位到提示错误的文件dsp.unsampling_mips_dsp_r2.c打开之后找到对应的错误行是下面这些#if !defined(WEBP_YUV_USE_TABLE)#define YUV_TO_RGB(Y, U, V, R, G, B) do { \const int t1 kYScale * Y; \const int t2 kVToG * V; \R kVToR * V; \G kUToG * U; \B kUToB * U; \R t1 R; \G t1 - G; \B t1 B; \R R kRCst; \G G - t2 kGCst; \B B kBCst; \__asm__ volatile ( \shll_s.w %[#R], %[#R], 9 \n\t \shll_s.w %[#G], %[#G], 9 \n\t \shll_s.w %[#B], %[#B], 9 \n\t \precrqu_s.qb.ph %[#R], %[#R], $zero \n\t \precrqu_s.qb.ph %[#G], %[#G], $zero \n\t \precrqu_s.qb.ph %[#B], %[#B], $zero \n\t \srl %[#R], %[#R], 24 \n\t \srl %[#G], %[#G], 24 \n\t \srl %[#B], %[#B], 24 \n\t \: [R]r(R), [G]r(G), [B]r(B) \: \); \} while (0)出现错误的地方就是所有的带有 R] 的位置解决方法很简单把R换成Red即可。#if !defined(WEBP_YUV_USE_TABLE)#define YUV_TO_RGB(Y, U, V, Red, G, B) do { \const int t1 kYScale * Y; \const int t2 kVToG * V; \Red kVToR * V; \G kUToG * U; \B kUToB * U; \Red t1 Red; \G t1 - G; \B t1 B; \Red Red kRCst; \G G - t2 kGCst; \B B kBCst; \__asm__ volatile ( \shll_s.w %[#Red], %[#Red], 9 \n\t \shll_s.w %[#G], %[#G], 9 \n\t \shll_s.w %[#B], %[#B], 9 \n\t \precrqu_s.qb.ph %[#Red], %[#Red], $zero \n\t \precrqu_s.qb.ph %[#G], %[#G], $zero \n\t \precrqu_s.qb.ph %[#B], %[#B], $zero \n\t \srl %[#Red], %[#Red], 24 \n\t \srl %[#G], %[#G], 24 \n\t \srl %[#B], %[#B], 24 \n\t \: [R]r(R), [G]r(G), [B]r(B) \: \); \} while (0)修改完这个文件中的错误和刚才那个文件在同一个目录下还有一个会出现同样错误的文件dsp.yuv_mips_dsp_r2.c这个的错误出现在第75行的#R(%[dst])shll_s.w %[temp7], %[temp7], 9 \n\t \precrqu_s.qb.ph %[temp5], %[temp5], $zero \n\t \precrqu_s.qb.ph %[temp6], %[temp6], $zero \n\t \precrqu_s.qb.ph %[temp7], %[temp7], $zero \n\t \srl %[temp5], %[temp5], 24 \n\t \srl %[temp6], %[temp6], 24 \n\t \srl %[temp7], %[temp7], 24 \n\t \sb %[temp5], #R(%[dst]) \n\t \sb %[temp6], #G(%[dst]) \n\t \sb %[temp7], #B(%[dst]) \n\t \同样按照上面的方式把R用Red替换即可。保存修改然后重新打开终端窗口输入make。这些就会执行成功了为了验证我们可以打开FreeImage/Dist文件夹会发现下面生成了3个文件FreeImage.h就是头文件libfreeimage.a就是linux版本的库文件(Windows下同下是.lib)。3. 其实进行到上面这一步那两个文件你就可以拿去用了用来编写自己的程序什么的。但是如果你要在本机上写一些代码来用那就需要在本机上安装一下FreeImage说是安装其实就是执行了两次拷贝操作而已把FreeImage.h文件写入到系统目录/usr/include文件夹下把libfreeimage.a写入到系统目录/usr/lib文件夹下当然你不需要自己亲手来进行写入因为并不是直接复制粘贴就可以linux系统下的系统目录你没有root权限是没办法直接复制粘贴文件的。我们直接使用命令就好在终端继续输入sudo make install系统就会自动执行上面的两个操作了sudo是获取root权限的意思如果你按照官网文档说明只使用make install是会报错提示你要先获取root权限的所以直接使用上面的命令就好。4. 最后我们执行一次make clean将刚才编译过程中生成的中间文件都删除掉就可以了。Linux(ubuntu系统)下使用FreeImage库相关教程
http://www.sadfv.cn/news/255957/

相关文章:

  • 企业网站建设注意点外贸建站seo
  • 有用unity做网站的吗个人备案能做企业网站吗
  • 天创网站沈阳seo公司
  • 山东省环保厅官方网站建设项目网站打不开是什么原因
  • 新企业建网站自己做的视频网站如何赚钱
  • 湄洲岛网站建设中国建设个人网上银行官网
  • 永顺网站建设做网站需要到什么技术
  • 品牌红酒网站建设wordpress 影楼主题
  • 做房产的网站排名网站系统怎么建设
  • 网站空间是什么外包app
  • 网站建设及运营 经营范围怎样进行网络推广效果更好
  • 重庆网站seo昔年优化百度云 做网站
  • 百度搜索这个网站为什么这么差股票跟单网站开发
  • 搭建网站的过程工信部网站106575000130
  • 如何制作网站二维码wordpress输出响应式图片
  • 哈尔滨自助模板建站中国工信备案查询网站
  • seo发展前景怎么样啊巩义网站优化培训
  • 免费个人网站空间申请宿迁seo公司
  • 北仑建设银行网站滕州建设局网站
  • 怎么制作一个网站推广哪些app最挣钱
  • 做写手一般上什么网站好90字体设计
  • 网站繁体和中文这么做管理系统服务
  • 网站建设人才调研h5自适应网站模板
  • 网站title优化网站域名的作用是什么意思
  • 商丘专业做网站公司页面好看的教育类网站模板
  • 建设网站要多少费用二七区建设局网站
  • 建设网站设计专业服务网站开发公司长春
  • 汕头建站免费模板免费自助站制作在线
  • 静态网站制作流程浙江平湖建设局网站
  • 网站开发所需人员小型培训机构管理系统