Igazából nem tudnám megmondani, hogy miért kell UDP a cmake-nek, de bizonyára van rá észszerű magyarázat.
/usr/local/src/cmake-3.18.1/Utilities/cmlibuv/src/unix/udp.c: In function 'uv__udp_set_source_membership4':
/usr/local/src/cmake-3.18.1/Utilities/cmlibuv/src/unix/udp.c:862:25: error: storage size of 'mreq' isn't known
struct ip_mreq_source mreq;
^
/usr/local/src/cmake-3.18.1/Utilities/cmlibuv/src/unix/udp.c:884:15: error: 'IP_ADD_SOURCE_MEMBERSHIP' undeclared (first use in this function)
optname = IP_ADD_SOURCE_MEMBERSHIP;
^
Szerk: azt mondja az internet, hogy a ip_mreq_source a multicast-hoz kell. Na így már nagyon világos, hogy a cmake-be kell ilyen. Tényleg elég nehéz lenne multicast nélkül elindítani a gcc-t vagy make-t. Bővebben itt: https://en.wikipedia.org/wiki/Software_bloat
- NevemTeve blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
why on earth is AIX53 used [sic]
- A hozzászóláshoz be kell jelentkezni
Hat, az AIX5.3 az kb egykoru azzal mikor a linux kernelbe belekerult az IP_ADD_SOURCE_MEMBERSHIP opcio (2.4.22), szoval jo kerdesek ezek... de barhogyis, ez elegge linux-specifikus opcionak tunik.
- A hozzászóláshoz be kell jelentkezni
Aix 6.1 fordul vele, de azért kicsit furcsállom, hogy Comenius Logóban vagy Focal-ban készült kézírásfelismerő programrész miért nincs a cmake-ban.
- A hozzászóláshoz be kell jelentkezni
Ne adj otleteket...
- A hozzászóláshoz be kell jelentkezni
--system-libuv es/vagy --no-system-libuv?
- A hozzászóláshoz be kell jelentkezni
Na, ez jól hangzik, szóval szerezzek egy ilyen libuv-ot, fordítsam le [ami az udp-s multicast miatt nem fog menni], azután mondjam a cmake-nak, hogy használja bátran azt.
- A hozzászóláshoz be kell jelentkezni
AFAIK ha sok gepen akarsz elosztottan forditani, ahhoz az UDP az egyik lehetoseg. Ha nem akarsz ilyet, akkor nem muszaj beleforditani. Ebben az esetben nem lesz elso ranezesre furcsanak tuno fuggosege sem.
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Első tippem:
if ! test -f Utilities/cmlibuv/src/unix/udp.c.bak; then
cp -p Utilities/cmlibuv/src/unix/udp.c Utilities/cmlibuv/src/unix/udp.c.bak
fi
while read N; do printf "int %s(void) { return -1; }\n" "$N";
done >Utilities/cmlibuv/src/unix/udp.c <<DONE
uv__udp_bind
uv__udp_close
uv__udp_connect
uv__udp_disconnect
uv__udp_finish_close
uv__udp_init_ex
uv__udp_recv_start
uv__udp_recv_stop
uv__udp_send
uv__udp_try_send
uv_udp_getpeername
uv_udp_getsockname
uv_udp_open
uv_udp_set_broadcast
uv_udp_set_membership
uv_udp_set_multicast_interface
uv_udp_set_multicast_loop
uv_udp_set_multicast_ttl
uv_udp_set_source_membership
uv_udp_set_ttl
DONE
fi
- A hozzászóláshoz be kell jelentkezni
Ha már hozzápiszkáltam, még azt is mondtam neki, hogy -system-liblzma
. Úgy látszik, ezt csak félig hitte el: nem hozott létre Utilities/cmliblzma/libcmliblzma.a
fájlt, de fel akarta használni a 'cmake' executable előállításához.
Szerk: kitalálhattam volna: a make előtt nekem kell végigjárnom az ő link.txt
fájlocskáit, és lecserélni a [^ ]*libcmliblzma.a
-t /usr/local/lib64/liblzma.la
-ra Furcsa is, hogy erre magamtól nem jöttem rá.
Szerk: vagy a make clean
nem volt elég erős, make distclean
vagy make mrproper
kellett volna?
- A hozzászóláshoz be kell jelentkezni