错误源自用g++的交叉编译工具链编译eudev。经过一番查找,发现在 errno.h 这个头文件中有 program_invocation_short_name 的 extern 定义。

 

经过查看 eudev的源码,发现相关的源文件都包含了 errno.h 这个头文件。

然后去翻看两种toolchain中的 errno.h 的差别,发现 相关extern语句的条件编译的条件不同。

尝试修改eudev的源码,使其满足条件编译中的条件,发现又会牵扯出一系列错误,为了源码能够编译成功,索性直接将用到 program_invocation_short_name 这个变量的地方全部用执行的字符串代替,比如,在编译eudev时,直接用"udev"替换 program_invocation_short_name 这个变量。

 

相关文章:

  • 2021-10-03
  • 2021-11-06
  • 2022-12-23
  • 2022-12-23
  • 2021-06-27
  • 2022-12-23
  • 2021-08-20
  • 2021-06-07
猜你喜欢
  • 2021-10-20
  • 2022-12-23
  • 2022-02-24
  • 2022-12-23
  • 2022-01-18
  • 2022-12-23
相关资源
相似解决方案