Библиотека Ethernet2 v.1.0.4 ошибка компиляции

AlexArGC
AlexArGC аватар
Offline
Зарегистрирован: 18.11.2016

Добрый день друзья.

Сегодня обновил библиотеку до версии 1.0.4 и получил ошибки компиляции. НО что самое странное скейтч всеравно заливается в Ардуину 2560. Шилд W5500.

In file included from C:\Users\aleks\Documents\Arduino\libraries\Ethernet2\src\Dns.cpp:7:0:
C:\Users\aleks\Documents\Arduino\libraries\Ethernet2\src\Dns.cpp: In member function 'uint16_t DNSClient::BuildRequest(const char*)':
C:\Users\aleks\Documents\Arduino\libraries\Ethernet2\src\utility/util.h:4:24: warning: result of '(256 << 8)' requires 18 bits to represent, but 'int' only has 16 bits [-Wshift-overflow=]
 #define htons(x) ( ((x)<< 8 & 0xFF00) | \
                     ~~~^~~~
C:\Users\aleks\Documents\Arduino\libraries\Ethernet2\src\Dns.cpp:202:21: note: in expansion of macro 'htons'
     twoByteBuffer = htons(QUERY_FLAG | OPCODE_STANDARD_QUERY | RECURSION_DESIRED_FLAG);
                     ^~~~~

Если откатиться до версии 1.0.3 то без ошибок компилится.

Может кто в курсе уже что там так серьезно поменялось?

GarryC
Offline
Зарегистрирован: 08.08.2016

Компилятор предупреждение выдает, а не ошибку, так что не удивительно, что скетч зашивается. Даже работать будет, ведь ошибки тут действительно нет, хотя htons действительно странный.