关于c语言中的program_invocation_short_name

错误源自用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 这个变量。

 

posted @ 2017-04-09 12:01  张不正  阅读(2132)  评论(0编辑  收藏  举报
返回顶部