The error originates from compiling the Eudev with the g++ cross-compilation toolchain. After a search, it was found that there is an extern definition of program_invocation_short_name in the errno.h header file.
After viewing the source code of Eudev, found that the relevant source files are included errno.h this header file.
Then go through the differences between the errno.h in the two toolchain, and find that the conditional compilation of the relevant extern statement is different.
Try to modify the source code of the Eudev, so that it satisfies the conditions in the compilation of conditions, and found that it will be involved in a series of errors, in order to compile the source code can be successful, simply use the program_invocation_short_name of the variable in the place of the execution of the string instead, for example, When compiling the Eudev, replace the program_invocation_short_name variable with "Udev" directly.
On the program_invocation_short_name in C language