Tôi đang gặp vấn đề nhận được API C ổ cắm để làm việc đúng cách trong C++
ngày z/OS
.
Mặc dù tôi bao gồm sys/socket.h
, tôi vẫn nhận được các lỗi thời gian biên dịch cho tôi biết rằng điều đó AF_INET
không được xác định .
Có phải tôi đang thiếu một cái gì đó rõ ràng, hoặc điều này có liên quan đến thực tế là việc z/OS
làm cho vấn đề của tôi phức tạp hơn nhiều?
Cập nhật : Sau khi điều tra thêm, tôi phát hiện ra rằng có một thứ #ifdef
mà tôi đang đánh. Rõ ràng z/OS
là không vui trừ khi tôi xác định "loại" ổ cắm nào tôi đang sử dụng với:
#define _OE_SOCKETS
Bây giờ, cá nhân tôi không biết cái này _OE_SOCKETS
thực sự dùng để làm gì, vì vậy nếu có bất kỳ z/OS
lập trình viên socket nào ở ngoài đó (cả 3 bạn), có lẽ bạn có thể cho tôi biết về cách thức hoạt động của tất cả những thứ này?
Ứng dụng thử nghiệm
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Biên dịch / Liên kết đầu ra:
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.
Việc kiểm tra sys / sockets.h không bao gồm định nghĩa tôi cần và theo như tôi có thể nói, nó không bị chặn bởi bất kỳ #ifdef
câu lệnh nào .
Tuy nhiên tôi đã nhận thấy nó chứa những điều sau đây:
#ifdef __cplusplus
extern "C" {
#endif
mà đóng gói về cơ bản toàn bộ tập tin? Không chắc chắn nếu nó quan trọng.