Am avut probleme în a obține API-ul pentru socket-uri C pentru a funcționa corect în C ++. În mod specific, deși includ sys / socket.h
, încă mai obțin erori de timp de compilare, spunându-mi că AF_INET
nu este definită. Am pierdut ceva evident, sau ar putea fi legat de faptul că fac codificarea pe z / OS
și problemele mele sunt mult mai complicate?
Update: Upon further investigation, I discovered that there is an #ifdef
that I'm hitting. Apparently z/OS
isn't happy unless I define which "type" of sockets I'm using with:
#define _OE_SOCKETS
Acum, eu personal nu am nici o idee despre ce este de fapt _OE_SOCKETS
, deci dacă vreun programator z / OS
este acolo (toți 3 dintre voi), poate ați putea da mi-o treabă cum funcționează toate acestea?
Sigur că pot posta o aplicație de testare.
#include
int main()
{
return AF_INET;
}
Compilație / ieșire link:
cxx -Wc, xplink -Wl, xplink -o inet_test inet.C
"./inet.C", linia 5.16: CCN5274 (S) Căutarea numelui pentru "AF_INET" nu a găsit o declarație.
CCN0797 (I) Compilarea a eșuat pentru fișierul ./inet.C. Fișierul obiect nu a fost creat.
O verificare a sys / sockets.h include definiția de care am nevoie și, în măsura în care pot spune, nu este blocată de nicio declarație #ifdef.
Am observat totuși că conține următoarele:
#ifdef __cplusplus
extern "C" {
#endif
care încapsulează în esență întregul dosar. Nu e sigur dacă contează.