/root/workspace/muduo/muduo/base/TimeZone.cc:171:36: error: conversion to ‘int’ from ‘long unsigned int’ may alter its value [-Werror=conversion] const int time_size = v1 ? sizeof(int32_t) : sizeof(int64_t); ^ /root/workspace/muduo/muduo/base/TimeZone.cc:171:54: error: conversion to ‘int’ from ‘long unsigned int’ may alter its value [-Werror=conversion] const int time_size = v1 ? sizeof(int32_t) : sizeof(int64_t); ^ cc1plus: all warnings being treated as errors make[2]: *** [muduo/base/CMakeFiles/muduo_base.dir/TimeZone.cc.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [muduo/base/CMakeFiles/muduo_base.dir/all] Error 2 make: *** [all] Error 2
查阅资料得知:
该错误是由于编译时启用了 -Werror=conversion 选项,该选项会将警告视为错误。在这里,编译器提示可能由于从 long unsigned int 到 int 的转换而导致值的变化。