ar: модификатор «u» игнорируется, так как по умолчанию используется «D» (смотрите «U») utun_instance.c: In function ‘utun_instance_destroy’: utun_instance.c:98:17: warning: implicit declaration of function ‘conn_destroy’; did you mean ‘uasync_destroy’? [-Wimplicit-function-declaration] 98 | conn_destroy(instance->connections[i]); | ^~~~~~~~~~~~ | uasync_destroy utun_instance.c: In function ‘tun_read_callback’: utun_instance.c:237:21: warning: implicit declaration of function ‘conn_send’ [-Wimplicit-function-declaration] 237 | if (conn_send(route.next_hop, buffer, nread) < 0) { | ^~~~~~~~~ utun_instance.c: In function ‘utun_instance_unregister_sockets’: utun_instance.c:276:57: warning: passing argument 2 of ‘uasync_remove_socket’ makes pointer from integer without a cast [-Wint-conversion] 276 | uasync_remove_socket(instance->ua, instance->tun.fd); | ~~~~~~~~~~~~~^~~ | | | int In file included from utun_instance.c:8: ../lib/u_async.h:35:48: note: expected ‘void *’ but argument is of type ‘int’ 35 | err_t uasync_remove_socket(uasync_t* ua, void* s_id); | ~~~~~~^~~~ etcp_connections.c: In function ‘etcp_link_send_init’: etcp_connections.c:223:5: warning: implicit declaration of function ‘sc_get_public_key’; did you mean ‘sc_set_peer_public_key’? [-Wimplicit-function-declaration] 223 | sc_get_public_key(sc, pubkey); | ^~~~~~~~~~~~~~~~~ | sc_set_peer_public_key etcp_connections.c: In function ‘init_connections’: etcp_connections.c:432:29: warning: initialization of ‘struct config *’ from incompatible pointer type ‘struct utun_config *’ [-Wincompatible-pointer-types] 432 | struct config* config = instance->config; | ^~~~~~~~ etcp_connections.c:433:42: error: invalid use of undefined type ‘struct config’ 433 | instance->connections = calloc(config->server_count, sizeof(conn_handle_t*)); | ^~ etcp_connections.c:438:31: error: invalid use of undefined type ‘struct config’ 438 | for (int i = 0; i < config->server_count; i++) { | ^~ etcp_connections.c:439:47: error: invalid use of undefined type ‘struct config’ 439 | struct server_config* server = &config->servers[i]; | ^~ etcp_connections.c:442:30: warning: implicit declaration of function ‘parse_ip_port’ [-Wimplicit-function-declaration] 442 | uint16_t bind_port = parse_ip_port(server->addr, bind_ip_str, sizeof(bind_ip_str)); | ^~~~~~~~~~~~~ etcp_connections.c:485:43: warning: assignment to ‘struct ETCP_SOCKET *’ from incompatible pointer type ‘struct ETCP_CONNECTIONS *’ [-Wincompatible-pointer-types] 485 | instance->first_listen_socket = conns; | ^ etcp_connections.c:489:35: error: invalid use of undefined type ‘struct config’ 489 | for (int j = 0; j < config->client_count; j++) { | ^~ etcp_connections.c:490:51: error: invalid use of undefined type ‘struct config’ 490 | struct client_config* client = &config->clients[j]; | ^~ make[2]: *** [Makefile:626: utun-etcp_connections.o] Ошибка 1 make[1]: *** [Makefile:433: all-recursive] Ошибка 1 make: *** [Makefile:353: all] Ошибка 2