Mam problemy uzyskiwanie c gniazd API do pracy odpowiednio w C++
dniu z/OS
.
Chociaż włączam sys/socket.h
, nadal pojawiają się błędy czasu kompilacji, które mówią mi, że AF_INET
nie jest zdefiniowane .
Czy brakuje mi czegoś oczywistego, czy jest to związane z faktem, że bycie na z/OS
łóżku znacznie komplikuje moje problemy?
Aktualizacja : Po dalszym dochodzeniu odkryłem, że jest coś #ifdef
, co uderzam. Najwyraźniej z/OS
nie jest zadowolony, chyba że zdefiniuję z jakim „typem” gniazdek korzystam:
#define _OE_SOCKETS
Osobiście nie mam pojęcia, do czego to _OE_SOCKETS
właściwie służy, więc jeśli z/OS
są tam jacyś programiści gniazd (wszyscy trzej), może moglibyście dać mi podsumowanie, jak to wszystko działa?
Aplikacja testowa
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Kompilacja / łącze wyjściowe:
cxx -Wc,xplink -Wl,xplink -o inet_test inet.C
"./inet.C", line 5.16: CCN5274 (S) The name lookup for "AF_INET" did not find a declaration.
CCN0797(I) Compilation failed for file ./inet.C. Object file not created.
Sprawdzenie sys / sockets.h zawiera definicję, której potrzebuję, i o ile wiem, nie jest ona blokowana przez żadne #ifdef
instrukcje.
Zauważyłem jednak, że zawiera:
#ifdef __cplusplus
extern "C" {
#endif
która zawiera w zasadzie cały plik? Nie jestem pewien, czy to ma znaczenie.