考虑到嵌入式平台的存储和运行空间都有限,在向目标平台移植时肯定要对minigui及其组件进行剪裁,删除掉不需要的功能和特性,以缩小程序体积,对mgncs做剪裁时遇到了一个非常奇怪的问题,虽然解决了,但现在也没找到根本原因:
根据configure --help的提示使用--enable-fashionrdr=no禁用fashion 渲染器(fashion render) 时报错了.
错误信息(片段)如下:

./configure --enable-fashionrdr=no
.....
checking for xmlFree in -lxml2... yes
checking for MINIGUI... no
configure: error: in `/home/gyd/workspace/facelock/dependencies/libmgncs-1.2.0':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.Alternatively, you may set the environment variables MINIGUI_CFLAGS
and MINIGUI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details

错误提示非常明确找不到pkg-config,但明明我是安装了pkg-config而且可以正常使用的。
如果我不使用--enable-fashionrdr=no这个参数禁用fashion render,configure就可以正常执行。显然问题不出在是不是安装pkg-config

于是找到configure.ac中与--enable-fashionrdr相关的代码,如下:

上面的逻辑很清楚,enable_rdr_fashion中存储了命令行输入的--enable-fashionrdr的值(enable_rdr_fashion默认为在代码最开始设置为yes),
--enable-fashionrdr=yes时,会执行PKG_CHECK_MODULES([MGPLUS], [mgplus >= 1.4.0]),检查minigui的mgplus组件是否安装。而为no时,不会执行这个动作。于是我做了个简单的测试,删除PKG_CHECK_MODULES([MGPLUS], [mgplus >= 1.4.0])这一行,则即使不指定--enable-fashionrdr=no,也会报错了。
所以可以总结:只要执行了PKG_CHECK_MODULES([MGPLUS], [mgplus >= 1.4.0])就不会报错。

于是我做了如下修改:不论--enable-fashionrdryesno,都执行PKG_CHECK_MODULES([MGPLUS], [mgplus >= 1.4.0]),就不再报错

为什么?!

按理说pkg-config检查MiniGUI与检查mGPlus是相互独立,互不影响的事件,
但是事实就是PKG_CHECK_MODULES([MGPLUS], [mgplus >= 1.4.0])这一行是否执行会影响到后面的PKG_CHECK_MODULES([MINIGUI], [minigui >= 3.2.0]),两个看似没有逻辑关系的事件产生了关联。
太奇怪了,到现在也没找到原因。

minigui 3.2.0:对mgncs剪裁遇到的问题error: The pkg-config script could not be found or is too old.相关推荐

  1. minigui 3.2.0:基于miniStudio应用TrueType字体的过程(2)-字体边缘锯齿,字库剪裁

    CSDN好像有问题,文章中图片太多无法继续增加图片,所以文章分两个部分:上半部分地址: <minigui 3.2.0:基于miniStudio应用TrueType字体的过程(1)>,下半部 ...

  2. fatal: unable to connect to gitee.com: gitee.com[0: 180.97.125.228]: errno=Unknown error

    fatal: unable to connect to gitee.com: gitee.com[0: 180.97.125.228]:errno=Unknown error 致命:无法连接到gite ...

  3. vue 错误building 2/2 modules 0 activeevents.js: 187 throw er; // unhandled 'error' event..... 解决

    vue项目启动时出现 building 2/2 modules 0 activeevents.js: 187  throw er; // unhandled 'error' event  Error: ...

  4. MiniGUI--ubuntu16下安装配置MiniGUI 3.2.0

    操作系统:Ubuntu Kylin 16.04 x86 MiniGUI版本:3.2.0 最近一直再搞这个东西,要配置的库真的是太多了.从README帮助文档可以看到3.2.0支持架构有x86 32/6 ...

  5. 【c语言 gcc9.1.0环境下编译报错】error: ‘true’ undeclared (first use in this function)

    问题 网上验证一个单链表是否有环的c语言demo,放到gcc9.1.0的环境下编译,发现编译报错: error: 'true' undeclared (first use in this functi ...

  6. 【Java从0到架构师】SpringCloud - Sleuth、Zipkin、Config

    SpringCloud 链路追踪组件 Sleuth Zipkin 分布式配置中心 - Config Git + Config 分布式配置中心 Java 从 0 到架构师目录:[Java从0到架构师]学 ...

  7. 关于react-router-dom 6.0.1的更新基本写法 解决Error: A <Route> is only ever to be used as the child of <Routes>

    文章目录 前言 一.先准备好要切换的组件 二.在 V5 版本则是这样使用 v5版本:`Router`直接包裹着`Route组件` 三.在V6版本则是这样使用 v6版本:`Route`需要先被`Rout ...

  8. 【OCC学习5】记录最新版本emcc编译occ的bug:opencascade-7.6.0/src/Standard/Standard_Time.hxx:29:25: error: redefinit

    1. 在研究OCC与Webassembly结合使用,编译的时候遇到以下问题: C:/workspace/occ_wasm/opencascade-7.6.0/src/Standard/Standard ...

  9. Streamsets 安装额外Stage包——CDH6.3.0包报错REST API call error: java.io.EOFException

    版本 Streamsets3.16.1(core) CDH6.3.2 一.问题 Streamsets安装包名为streamsets-datacollector-core-3.16.1.tgz,安装好后 ...

最新文章

  1. MyBatis接口的简单实现原理
  2. Android 四大组件之——Acitivity(一)
  3. vue中使用moment来实现导出excel时添加格式化的时间戳
  4. while循环里面scanf_5.1 for循环
  5. C++STL特殊容器priority_queue
  6. POJ-3624 Charm Bracelet dp
  7. html动图放大太模糊怎么调,如何解决图片放大画质失真问题
  8. linux 配置apache的虚拟主机
  9. IP转发的最长前缀匹配
  10. 工程从进场到竣工 资料报验的一般程序
  11. matlab画图线形
  12. 研发岗位OKR的设计与激励 - 管理角度(附部分岗位样例)
  13. 国内顶尖网页游戏制作人和主策划名单(转)
  14. 图像变换 - 图像拉伸、收缩、扭曲、旋转- 仿射变换(cvWarpAffine)
  15. 立此存照:杨振宁 VS 邓稼先 (转贴)
  16. 使用 Suspense 改善 Vue 3 中的用户体验
  17. [ubuntn]常用软件安装方法
  18. Nexus Repository和Docker Registry镜像仓库搭建及使用
  19. Math:泰勒(Taylor)公式
  20. hadoop 2.6遇到的DataNode无法启动问题

热门文章

  1. 详解ISA的HTTP过滤功能
  2. java mysql 获取页码,java获取word页数
  3. python截图代码讲解_Python为PPT文件进行截图操作的代码详解
  4. 使用HttpClient模拟登陆并爬取网页
  5. Python之字典查找元素(3种方式)
  6. java拍照识物_智能拍照识别app下载-智能拍照识别软件(拍照识物)下载v2.5.8安卓版-西西软件下载...
  7. C1任务03 Web的世界(下)
  8. CE MAPI学习(-)开始一个MAPI Session
  9. 如何在Excel/WPS表格中使用拼音公式?
  10. ----顾问应该是探索新领域的向导,而不是拉雪橇的狗