Hey, Guys, I have a similar problem with compiling my code that uses the single-file library, and I have added also the same thing that you suggested but not working and the same error happened,
Could you please let me know is related to what?
do I need include ua_config.h? and if yes where is it?
If you know about this problem I will be appriciate if you can help me,
Regards
//error !!!!!
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:21349:5: error: unknown type name ‘UA_SOCKET’
UA_SOCKET sockfd; /* Most connectivity solutions run on
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25632:1: error: unknown type name ‘ssize_t’; did you mean ‘size_t’?
ssize_t UA_send(UA_SOCKET sockfd, const void *buf, size_t len, int flags); //equivalent to posix send implementation
^~~~~~~
size_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25632:17: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
ssize_t UA_send(UA_SOCKET sockfd, const void *buf, size_t len, int flags); //equivalent to posix send implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25636:1: error: unknown type name ‘ssize_t’; did you mean ‘size_t’?
ssize_t sendto(UA_SOCKET sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); //equivalent to posix sendto implementation
^~~~~~~
size_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25636:16: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
ssize_t sendto(UA_SOCKET sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); //equivalent to posix sendto implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25636:108: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
ssize_t sendto(UA_SOCKET sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); //equivalent to posix sendto implementation
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25640:15: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_select(UA_SOCKET nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); //equivalent to posix select implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25640:31: error: unknown type name ‘fd_set’; did you mean ‘false’?
int UA_select(UA_SOCKET nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); //equivalent to posix select implementation
^~~~~~
false
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25640:48: error: unknown type name ‘fd_set’; did you mean ‘false’?
int UA_select(UA_SOCKET nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); //equivalent to posix select implementation
^~~~~~
false
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25640:66: error: unknown type name ‘fd_set’; did you mean ‘false’?
int UA_select(UA_SOCKET nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); //equivalent to posix select implementation
^~~~~~
false
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25644:1: error: unknown type name ‘ssize_t’; did you mean ‘size_t’?
ssize_t UA_recv(UA_SOCKET sockfd, void *buf, size_t len, int flags); //equivalent to posix recv implementation
^~~~~~~
size_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25644:17: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
ssize_t UA_recv(UA_SOCKET sockfd, void *buf, size_t len, int flags); //equivalent to posix recv implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25648:1: error: unknown type name ‘ssize_t’; did you mean ‘size_t’?
ssize_t recvfrom(UA_SOCKET sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
^~~~~~~
size_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25648:18: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
ssize_t recvfrom(UA_SOCKET sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25648:97: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
ssize_t recvfrom(UA_SOCKET sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25652:17: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_shutdown(UA_SOCKET sockfd, int how); //equivalent to posix shutdown implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25656:1: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
UA_SOCKET UA_socket(int domain, int type, int protocol);//equivalent to posix socket implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25660:13: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_bind(UA_SOCKET sockfd, const struct sockaddr *addr, socklen_t addrlen);//equivalent to posix bind implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25660:60: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
int UA_bind(UA_SOCKET sockfd, const struct sockaddr *addr, socklen_t addrlen);//equivalent to posix bind implementation
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25664:15: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_listen(UA_SOCKET sockfd, int backlog);//equivalent to posix listen implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25668:15: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_accept(UA_SOCKET sockfd, struct sockaddr *addr, socklen_t *addrlen);//equivalent to posix accept implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25668:56: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
int UA_accept(UA_SOCKET sockfd, struct sockaddr *addr, socklen_t *addrlen);//equivalent to posix accept implementation
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25672:14: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_close(UA_SOCKET sockfd);//equivalent to posix close implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25676:16: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_connect(UA_SOCKET sockfd, const struct sockaddr *addr, socklen_t addrlen);//equivalent to posix connect implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25676:63: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
int UA_connect(UA_SOCKET sockfd, const struct sockaddr *addr, socklen_t addrlen);//equivalent to posix connect implementation
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25680:16: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
void UA_fd_set(UA_SOCKET fd, fd_set *set); //equivalent to posix FD_SET implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25680:30: error: unknown type name ‘fd_set’; did you mean ‘false’?
void UA_fd_set(UA_SOCKET fd, fd_set *set); //equivalent to posix FD_SET implementation
^~~~~~
false
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25684:17: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
int UA_fd_isset(UA_SOCKET fd, fd_set *set);//equivalent to posix FD_ISSET implementation
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25684:31: error: unknown type name ‘fd_set’; did you mean ‘false’?
int UA_fd_isset(UA_SOCKET fd, fd_set *set);//equivalent to posix FD_ISSET implementation
^~~~~~
false
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25688:72: warning: ‘struct addrinfo’ declared inside parameter list will not be visible outside of this definition or declaration
int UA_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);//equivalent to posix getaddrinfo implementation
^~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25710:37: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
unsigned int UA_socket_set_blocking(UA_SOCKET sockfd);//set a socket as blocking. Returns 0 if OK, other value otherwise
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25714:40: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
unsigned int UA_socket_set_nonblocking(UA_SOCKET sockfd);//set a socket as non-blocking. Returns 0 if OK, other value otherwise
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25718:69: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
int UA_getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); //equivalent to posix getsockopt implementation. Only in non windows architectures
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25722:75: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
int UA_setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);//equivalent to posix setsockopt implementation
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:29: warning: ‘struct addrinfo’ declared inside parameter list will not be visible outside of this definition or declaration
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘connection_write’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47893:17: warning: implicit declaration of function ‘UA_send’; did you mean ‘UA_new’? [-Wimplicit-function-declaration]
n = UA_send(connection->sockfd,
^~~~~~~
UA_new
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47896:25: error: ‘UA_ERRNO’ undeclared (first use in this function); did you mean ‘UA_STRING’?
if(n < 0 && UA_ERRNO != UA_INTERRUPTED && UA_ERRNO != UA_AGAIN) {
^~~~~~~~
UA_STRING
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47896:25: note: each undeclared identifier is reported only once for each function it appears in
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47896:37: error: ‘UA_INTERRUPTED’ undeclared (first use in this function); did you mean ‘UA_UINT32RANGE’?
if(n < 0 && UA_ERRNO != UA_INTERRUPTED && UA_ERRNO != UA_AGAIN) {
^~~~~~~~~~~~~~
UA_UINT32RANGE
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47896:67: error: ‘UA_AGAIN’ undeclared (first use in this function); did you mean ‘UA_MIN’?
if(n < 0 && UA_ERRNO != UA_INTERRUPTED && UA_ERRNO != UA_AGAIN) {
^~~~~~~~
UA_MIN
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘connection_recv’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47920:9: warning: implicit declaration of function ‘UA_fd_set’; did you mean ‘UA_socket’? [-Wimplicit-function-declaration]
UA_fd_set(connection->sockfd, &fdset);
^~~~~~~~~
UA_socket
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47924:26: warning: implicit declaration of function ‘UA_select’; did you mean ‘pselect’? [-Wimplicit-function-declaration]
int resultsize = UA_select(connection->sockfd+1, &fdset, NULL,
^~~~~~~~~
pselect
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47934:16: error: ‘errno’ undeclared (first use in this function)
if(errno == EINTR)
^~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47934:25: error: ‘EINTR’ undeclared (first use in this function)
if(errno == EINTR)
^~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47951:19: warning: implicit declaration of function ‘UA_recv’; did you mean ‘UA_free’? [-Wimplicit-function-declaration]
ssize_t ret = UA_recv(connection->sockfd, (char*)response->data,
^~~~~~~
UA_free
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47964:12: error: ‘UA_ERRNO’ undeclared (first use in this function); did you mean ‘UA_STRING’?
if(UA_ERRNO == UA_INTERRUPTED || (timeout > 0) ?
^~~~~~~~
UA_STRING
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47964:24: error: ‘UA_INTERRUPTED’ undeclared (first use in this function); did you mean ‘UA_UINT32RANGE’?
if(UA_ERRNO == UA_INTERRUPTED || (timeout > 0) ?
^~~~~~~~~~~~~~
UA_UINT32RANGE
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47965:33: error: ‘UA_EAGAIN’ undeclared (first use in this function); did you mean ‘UA_MIN’?
false : (UA_ERRNO == UA_EAGAIN || UA_ERRNO == UA_WOULDBLOCK))
^~~~~~~~~
UA_MIN
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47965:58: error: ‘UA_WOULDBLOCK’ undeclared (first use in this function)
false : (UA_ERRNO == UA_EAGAIN || UA_ERRNO == UA_WOULDBLOCK))
^~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: At top level:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:47994:5: error: unknown type name ‘UA_SOCKET’
UA_SOCKET serverSockets[FD_SETSIZE];
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘ServerNetworkLayerTCP_close’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48011:5: warning: implicit declaration of function ‘UA_shutdown’; did you mean ‘UA_htonl’? [-Wimplicit-function-declaration]
UA_shutdown((UA_SOCKET)connection->sockfd, 2);
^~~~~~~~~~~
UA_htonl
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48011:18: error: ‘UA_SOCKET’ undeclared (first use in this function); did you mean ‘UA_FORMAT’?
UA_shutdown((UA_SOCKET)connection->sockfd, 2);
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48011:28: error: expected ‘)’ before ‘connection’
UA_shutdown((UA_SOCKET)connection->sockfd, 2);
^~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: At top level:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48017:34: warning: ‘struct sockaddr_storage’ declared inside parameter list will not be visible outside of this definition or declaration
struct sockaddr_storage *remote) {
^~~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘ServerNetworkLayerTCP_add’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48019:5: warning: implicit declaration of function ‘UA_socket_set_nonblocking’ [-Wimplicit-function-declaration]
UA_socket_set_nonblocking(newsockfd);//TODO: check return value
^~~~~~~~~~~~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48023:8: warning: implicit declaration of function ‘UA_setsockopt’; did you mean ‘UA_socket’? [-Wimplicit-function-declaration]
if(UA_setsockopt(newsockfd, IPPROTO_TCP, TCP_NODELAY,
^~~~~~~~~~~~~
UA_socket
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48023:33: error: ‘IPPROTO_TCP’ undeclared (first use in this function)
if(UA_setsockopt(newsockfd, IPPROTO_TCP, TCP_NODELAY,
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48023:46: error: ‘TCP_NODELAY’ undeclared (first use in this function)
if(UA_setsockopt(newsockfd, IPPROTO_TCP, TCP_NODELAY,
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48025:9: warning: implicit declaration of function ‘UA_LOG_SOCKET_ERRNO_WRAP’; did you mean ‘UA_LOG_NODEID_WRAP’? [-Wimplicit-function-declaration]
UA_LOG_SOCKET_ERRNO_WRAP(
^~~~~~~~~~~~~~~~~~~~~~~~
UA_LOG_NODEID_WRAP
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48028:30: error: ‘errno_str’ undeclared (first use in this function)
errno_str));
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48057:9: warning: implicit declaration of function ‘UA_close’; did you mean ‘pclose’? [-Wimplicit-function-declaration]
UA_close(newsockfd);
^~~~~~~~
pclose
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: At top level:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48082:54: warning: ‘struct addrinfo’ declared inside parameter list will not be visible outside of this definition or declaration
addServerSocket(ServerNetworkLayerTCP *layer, struct addrinfo *ai) {
^~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘addServerSocket’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48084:5: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
UA_SOCKET newsock = UA_socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48084:37: error: dereferencing pointer to incomplete type ‘struct addrinfo’
UA_SOCKET newsock = UA_socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
^~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48085:19: error: ‘UA_INVALID_SOCKET’ undeclared (first use in this function); did you mean ‘UA_NS0ID_NODE’?
if(newsock == UA_INVALID_SOCKET)
^~~~~~~~~~~~~~~~~
UA_NS0ID_NODE
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48107:31: error: ‘SOL_SOCKET’ undeclared (first use in this function)
if(UA_setsockopt(newsock, SOL_SOCKET, SO_REUSEADDR,
^~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48107:43: error: ‘SO_REUSEADDR’ undeclared (first use in this function)
if(UA_setsockopt(newsock, SOL_SOCKET, SO_REUSEADDR,
^~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48124:8: warning: implicit declaration of function ‘UA_bind’; did you mean ‘UA_init’? [-Wimplicit-function-declaration]
if(UA_bind(newsock, ai->ai_addr, (socklen_t)ai->ai_addrlen) < 0) {
^~~~~~~
UA_init
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48124:39: error: ‘socklen_t’ undeclared (first use in this function); did you mean ‘__socklen_t’?
if(UA_bind(newsock, ai->ai_addr, (socklen_t)ai->ai_addrlen) < 0) {
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48124:49: error: expected ‘)’ before ‘ai’
if(UA_bind(newsock, ai->ai_addr, (socklen_t)ai->ai_addrlen) < 0) {
^~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48127:65: error: ‘errno_str’ undeclared (first use in this function)
"Error binding a server socket: %s", errno_str));
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48133:8: warning: implicit declaration of function ‘UA_listen’ [-Wimplicit-function-declaration]
if(UA_listen(newsock, MAXBACKLOG) < 0) {
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘ServerNetworkLayerTCP_start’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48175:21: error: storage size of ‘hints’ isn’t known
struct addrinfo hints, *res;
^~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48177:23: error: ‘AF_UNSPEC’ undeclared (first use in this function)
hints.ai_family = AF_UNSPEC;
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48178:25: error: ‘SOCK_STREAM’ undeclared (first use in this function)
hints.ai_socktype = SOCK_STREAM;
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48179:22: error: ‘AI_PASSIVE’ undeclared (first use in this function)
hints.ai_flags = AI_PASSIVE;
^~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48180:25: error: ‘IPPROTO_TCP’ undeclared (first use in this function)
hints.ai_protocol = IPPROTO_TCP;
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48181:45: warning: passing argument 4 of ‘UA_getaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
if(UA_getaddrinfo(NULL, portno, &hints, &res) != 0)
^
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25688:5: note: expected ‘struct addrinfo **’ but argument is of type ‘struct addrinfo **’
int UA_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);//equivalent to posix getaddrinfo implementation
^~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48189:16: error: dereferencing pointer to incomplete type ‘struct addrinfo’
ai = ai->ai_next)
^~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48190:32: warning: passing argument 2 of ‘addServerSocket’ from incompatible pointer type [-Wincompatible-pointer-types]
addServerSocket(layer, ai);
^~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48082:1: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
addServerSocket(ServerNetworkLayerTCP *layer, struct addrinfo *ai) {
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48191:21: warning: passing argument 1 of ‘UA_freeaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
UA_freeaddrinfo(res);
^~~
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:6: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘ServerNetworkLayerTCP_listen’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48237:67: error: ‘errno_str’ undeclared (first use in this function)
"Socket select failed with %s", errno_str));
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48244:13: warning: implicit declaration of function ‘UA_fd_isset’; did you mean ‘UA_assert’? [-Wimplicit-function-declaration]
if(!UA_fd_isset(layer->serverSockets[i], &fdset))
^~~~~~~~~~~
UA_assert
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48247:33: error: storage size of ‘remote’ isn’t known
struct sockaddr_storage remote;
^~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48248:9: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
socklen_t remote_size = sizeof(remote);
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48249:9: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
UA_SOCKET newsockfd = UA_accept((UA_SOCKET)layer->serverSockets[i],
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48249:31: warning: implicit declaration of function ‘UA_accept’; did you mean ‘UA_access’? [-Wimplicit-function-declaration]
UA_SOCKET newsockfd = UA_accept((UA_SOCKET)layer->serverSockets[i],
^~~~~~~~~
UA_access
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48249:42: error: ‘UA_SOCKET’ undeclared (first use in this function); did you mean ‘UA_FORMAT’?
UA_SOCKET newsockfd = UA_accept((UA_SOCKET)layer->serverSockets[i],
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48249:52: error: expected ‘)’ before ‘layer’
UA_SOCKET newsockfd = UA_accept((UA_SOCKET)layer->serverSockets[i],
^~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48251:25: error: ‘UA_INVALID_SOCKET’ undeclared (first use in this function); did you mean ‘UA_SOCKET’?
if(newsockfd == UA_INVALID_SOCKET)
^~~~~~~~~~~~~~~~~
UA_SOCKET
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: At top level:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48370:18: error: field ‘hints’ has incomplete type
struct addrinfo hints, *server;
^~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘ClientNetworkLayerTCP_free’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48394:27: warning: passing argument 1 of ‘UA_freeaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
UA_freeaddrinfo(tcpConnection->server);
^~~~~~~~~~~~~
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:6: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘UA_ClientConnectionTCP_poll’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48409:5: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
UA_SOCKET clientsockfd;
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48429:51: error: dereferencing pointer to incomplete type ‘struct addrinfo’
clientsockfd = UA_socket(tcpConnection->server->ai_family,
^~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48434:24: error: ‘UA_INVALID_SOCKET’ undeclared (first use in this function); did you mean ‘UA_NS0ID_NODE’?
if(clientsockfd == UA_INVALID_SOCKET) {
^~~~~~~~~~~~~~~~~
UA_NS0ID_NODE
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48436:76: error: ‘UA_ERRNO’ undeclared (first use in this function); did you mean ‘UA_STRING’?
"Could not create client socket: %s", strerror(UA_ERRNO));
^~~~~~~~
UA_STRING
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48450:17: warning: implicit declaration of function ‘UA_connect’; did you mean ‘UA_socket’? [-Wimplicit-function-declaration]
int error = UA_connect(clientsockfd, tcpConnection->server->ai_addr,
^~~~~~~~~~
UA_socket
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48453:39: error: ‘UA_ERR_CONNECTION_PROGRESS’ undeclared (first use in this function); did you mean ‘UA_CONNECTION_CLOSED’?
if ((error == -1) && (UA_ERRNO != UA_ERR_CONNECTION_PROGRESS)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
UA_CONNECTION_CLOSED
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48510:13: error: unknown type name ‘OPTVAL_TYPE’
OPTVAL_TYPE so_error;
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48511:13: error: unknown type name ‘socklen_t’; did you mean ‘__socklen_t’?
socklen_t len = sizeof so_error;
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48513:23: warning: implicit declaration of function ‘UA_getsockopt’; did you mean ‘UA_socket’? [-Wimplicit-function-declaration]
int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error,
^~~~~~~~~~~~~
UA_socket
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48513:51: error: ‘SOL_SOCKET’ undeclared (first use in this function)
int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error,
^~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48513:63: error: ‘SO_ERROR’ undeclared (first use in this function); did you mean ‘UA_ERRNO’?
int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error,
^~~~~~~~
UA_ERRNO
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48519:33: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘WCONTINUED’?
if (so_error != ECONNREFUSED) {
^~~~~~~~~~~~
WCONTINUED
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘UA_ClientConnectionTCP_init’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48599:44: error: ‘AF_UNSPEC’ undeclared (first use in this function)
tcpClientConnection->hints.ai_family = AF_UNSPEC;
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48600:46: error: ‘SOCK_STREAM’ undeclared (first use in this function)
tcpClientConnection->hints.ai_socktype = SOCK_STREAM;
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48604:21: warning: passing argument 4 of ‘UA_getaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
&tcpClientConnection->server);
^
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25688:5: note: expected ‘struct addrinfo **’ but argument is of type ‘struct addrinfo **’
int UA_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);//equivalent to posix getaddrinfo implementation
^~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48606:7: warning: implicit declaration of function ‘UA_LOG_SOCKET_ERRNO_GAI_WRAP’; did you mean ‘UA_LOG_NODEID_WRAP’? [-Wimplicit-function-declaration]
UA_LOG_SOCKET_ERRNO_GAI_WRAP(UA_LOG_WARNING(logger, UA_LOGCATEGORY_NETWORK,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
UA_LOG_NODEID_WRAP
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48607:101: error: ‘errno_str’ undeclared (first use in this function); did you mean ‘error’?
"DNS lookup of %s failed with error %s", hostname, errno_str));
^~~~~~~~~
error
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c: In function ‘UA_ClientConnectionTCP’:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48661:21: error: storage size of ‘hints’ isn’t known
struct addrinfo hints, *server;
^~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48663:23: error: ‘AF_UNSPEC’ undeclared (first use in this function)
hints.ai_family = AF_UNSPEC;
^~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48664:25: error: ‘SOCK_STREAM’ undeclared (first use in this function)
hints.ai_socktype = SOCK_STREAM;
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48665:25: error: ‘IPPROTO_TCP’ undeclared (first use in this function)
hints.ai_protocol = IPPROTO_TCP;
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48668:59: warning: passing argument 4 of ‘UA_getaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
int error = UA_getaddrinfo(hostname, portStr, &hints, &server);
^
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25688:5: note: expected ‘struct addrinfo **’ but argument is of type ‘struct addrinfo **’
int UA_getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);//equivalent to posix getaddrinfo implementation
^~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48671:98: error: ‘errno_str’ undeclared (first use in this function); did you mean ‘error’?
"DNS lookup of %s failed with error %s", hostname, errno_str));
^~~~~~~~~
error
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48678:5: error: unknown type name ‘UA_SOCKET’; did you mean ‘UA_FORMAT’?
UA_SOCKET clientsockfd;
^~~~~~~~~
UA_FORMAT
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48688:28: error: ‘UA_INVALID_SOCKET’ undeclared (first use in this function); did you mean ‘UA_NS0ID_NODE’?
if(clientsockfd == UA_INVALID_SOCKET) {
^~~~~~~~~~~~~~~~~
UA_NS0ID_NODE
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48691:29: warning: passing argument 1 of ‘UA_freeaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
UA_freeaddrinfo(server);
^~~~~~
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:6: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48705:29: warning: passing argument 1 of ‘UA_freeaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
UA_freeaddrinfo(server);
^~~~~~
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:6: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48710:60: error: ‘socklen_t’ undeclared (first use in this function); did you mean ‘__socklen_t’?
error = UA_connect(clientsockfd, server->ai_addr, (socklen_t)server->ai_addrlen);
^~~~~~~~~
__socklen_t
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48710:70: error: expected ‘)’ before ‘server’
error = UA_connect(clientsockfd, server->ai_addr, (socklen_t)server->ai_addrlen);
^~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48712:31: error: ‘UA_ERRNO’ undeclared (first use in this function); did you mean ‘UA_STRING’?
if ((error == -1) && (UA_ERRNO != UA_ERR_CONNECTION_PROGRESS)) {
^~~~~~~~
UA_STRING
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48712:43: error: ‘UA_ERR_CONNECTION_PROGRESS’ undeclared (first use in this function); did you mean ‘UA_CONNECTION_CLOSED’?
if ((error == -1) && (UA_ERRNO != UA_ERR_CONNECTION_PROGRESS)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
UA_CONNECTION_CLOSED
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48718:29: warning: passing argument 1 of ‘UA_freeaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
UA_freeaddrinfo(server);
^~~~~~
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:6: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48769:17: error: unknown type name ‘OPTVAL_TYPE’
OPTVAL_TYPE so_error;
^~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48770:27: error: expected ‘;’ before ‘len’
socklen_t len = sizeof so_error;
^~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48772:55: error: ‘SOL_SOCKET’ undeclared (first use in this function)
int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error, &len);
^~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48772:67: error: ‘SO_ERROR’ undeclared (first use in this function); did you mean ‘UA_ERRNO’?
int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error, &len);
^~~~~~~~
UA_ERRNO
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48772:89: error: ‘len’ undeclared (first use in this function)
int ret = UA_getsockopt(clientsockfd, SOL_SOCKET, SO_ERROR, &so_error, &len);
^~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48777:37: error: ‘ECONNREFUSED’ undeclared (first use in this function); did you mean ‘WCONTINUED’?
if (so_error != ECONNREFUSED) {
^~~~~~~~~~~~
WCONTINUED
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48782:41: warning: passing argument 1 of ‘UA_freeaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
UA_freeaddrinfo(server);
^~~~~~
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:6: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48802:21: warning: passing argument 1 of ‘UA_freeaddrinfo’ from incompatible pointer type [-Wincompatible-pointer-types]
UA_freeaddrinfo(server);
^~~~~~
In file included from /home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:28:0:
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.h:25726:6: note: expected ‘struct addrinfo *’ but argument is of type ‘struct addrinfo *’
void UA_freeaddrinfo(struct addrinfo *res);//equivalent to posix freeaddrinfo implementatio
^~~~~~~~~~~~~~~
/home/mohamad/workspace/DIIG/OpcUADIIG-Server/open62541.c:48816:8: warning: implicit declaration of function ‘UA_socket_set_blocking’ [-Wimplicit-function-declaration]
if(UA_socket_set_blocking(clientsockfd) != UA_STATUSCODE_GOOD) {
^~~~~~~~~~~~~~~~~~~~~~
CMakeFiles/OpcUAServer.dir/build.make:62: recipe for target 'CMakeFiles/OpcUAServer.dir/open62541.c.o' failed
make[2]: *** [CMakeFiles/OpcUAServer.dir/open62541.c.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/OpcUAServer.dir/all' failed
make[1]: *** [CMakeFiles/OpcUAServer.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Как говорится в вопросе, у меня возникла проблема со следующим кодом:
#pragma once
#include "includes.h"
#include "buffer.h"
class CSocket
{
bool udp;
int format;
char formatstr[30];
static sockaddr SenderAddr;
int receivetext(char*buf, int max);
public:
SOCKET sockid;
CSocket(SOCKET sock);
CSocket();
~CSocket();
bool tcpconnect(char*address, int port, int mode);
bool tcplisten(int port, int max, int mode);
CSocket* tcpaccept(int mode);
char* tcpip();
void setnagle(bool enabled);
bool tcpconnected();
int setsync(int mode);
bool udpconnect(int port, int mode);
int sendmessage(char*ip, int port, CBuffer* source);
int receivemessage(int len, CBuffer*destination);
int peekmessage(int size, CBuffer*destination);
int lasterror();
static char* GetIp(char*address);
static int SockExit(void);
static int SockStart(void);
static char* lastinIP(void);
static unsigned short lastinPort(void);
static char* myhost();
int SetFormat(int mode, char* sep);
};
Я использую Code::Blocks. Я получаю следующую ошибку во время сборки:
/home/nick/Desktop/39dylibsource/Base Code/39dll/socket.h|15|error: ‘SOCKET’ does not name a type|
/home/nick/Desktop/39dylibsource/Base Code/39dll/socket.h|16|error: expected ‘)’ before ‘sock’|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|16|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|25|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|34|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|43|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|50|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|59|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|66|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|74|error: expected constructor, destructor, or type conversion before ‘(’ token|
/home/nick/Desktop/39dylibsource/Base Code/39dll/main.cpp|85|error: expected constructor, destructor, or type conversion before ‘(’ token|
||=== Build finished: 11 errors, 0 warnings ===|
Я включил следующее в указанный файл include.h:
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
Мне не хватает директивы или библиотеки? SOCKET пишется по-другому? Любое освещение было бы здорово!
|
|
|
информация о разделе
Данный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных — обсуждаем в разделе «Базы данных: общие вопросы». Убедительная просьба — соблюдать «Правила форума» и не пренебрегать «Правильным оформлением своих тем». Прежде, чем создавать тему, имеет смысл заглянуть в раздел «Базы данных: FAQ», возможно там уже есть ответ. |
mysql C api при компиляции ошибка
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Привет всем! #include <stdio.h> #include <mysql.h> MYSQL *conn; /* pointer to connection handler */ int main ( int argc, char *argv[] ) { conn = mysql_init ( NULL ); mysql_real_connect ( conn, /* pointer to connection handler */ «localhost», /* host to connect to */ «user_name», /* user name */ «password», /* password */ «test», /* database to use */ 0, /* port (default 3306) */ NULL, /* socket or /var/lib/mysql.sock */ 0 ); /* flags (none) */ mysql_close ( conn ); return 0; } gcc a.c -o a.exe -Lc:mysqlbin -Ic:mysqlinclude И в итоги получаю такое сообщение In file included from include/mysql.h:72, Плз, почему возникает такая ошибка |
Шадофф |
|
Странно, по указанным строкам в указанном файле нет вообще ни каких упоминаний про структуру SOCKET. Цитата Плз, почему возникает такая ошибка
Не находит описания SOCKET. #include <winsock.h> в исходнике явно есть. Сталбыть, компиль не видит winsock.h… |
Шадофф |
|
Немного подумав. Речь идёт вот об этом -> http://www.bloodshed.net/dev/devcpp.html Ктому же, хоть gcc.exe и в винде, он по идее, должен «понимать» где находится, но не худо было бы ему явно указать это. Хотя, если честно, то лучше прогуляться по ссылке выше, скачатьоттуда порядка 5 MB, потом налоить через менеджер пакетов обновления (mysql и postgres там есть) и забыть о проблемах. Добавлено 27.07.08, 06:19 Кстати, а точно библиотека mysql лежит в c:mysqlbin? |
itwork |
|
Цитата Шадофф @ 26.07.08, 20:03 Под вяндой лучше поставить себе «аналог» cygwin’а (в основе лежит mingw) — Dev-C++ т.е имели ввиду использовать mingw32-gcc!? mingw32-gcc aaa.c -o aaa.exe -Lc:mysqllibopt -Ic:mysqlinclude -DWIN32 -D_WINDOWS -no-cygwin результат тотже Сообщение отредактировано: itwork — 27.07.08, 09:01 |
Шадофф |
|
Цитата т.е имели ввиду использовать mingw32-gcc!? Угу. Он в Dev-C++ (в среду) встроенный. Это не сильно важно. Важнее другое — там все пути сразу подточены. В данном случае, по-моему, не находит заголовочный файл от win. Он вообще есть? Я имею ввиду winsock.h? |
itwork |
|
c:MinGWinclude |
itwork |
|
понял!!! это дело в mysql.h! вот токо как правильно mysql.h отредактировать Сообщение отредактировано: itwork — 27.07.08, 20:02 |
Шадофф |
|
Я то же. Блин, я тормоз. Понял это когда глянул свой проект примерно трёх-летней давности… Цитата это дело в mysql.h! Отчасти да. Короче, для решения всех проблем надо сделать следующее: #include <my_global.h> #include <mysql.h>
Вот именно в таком порядке эти два файла должны быть прописаны в исходнике. В my_global.h прописаны «конвертации» для платформы винды. И, на винде, оно так и должно быть прописано. Кроме того, в проекте должны быть привязаны либы -lm -lwsock32 -luser32 -lgcc. Сообщение отредактировано: Шадофф — 28.07.08, 07:17 |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Базы данных: SQL
- Следующая тема
[ Script execution time: 0,0323 ] [ 15 queries used ] [ Generated: 9.02.23, 15:19 GMT ]
Форум программистов Vingrad
Поиск: |
|
Опции темы |
Saman |
|
||||
Новичок Профиль Репутация: нет
|
при добавлении строчки
при компилляции выдаёт следующие ошибки
|
||||
|
|||||
JackYF |
|
||
полуавантюрист Профиль
Репутация: 1
|
а причём здесь qt? ——————— Пожаловаться на меня как модератора можно здесь. |
||
|
|||
Saman |
|
||
Новичок Профиль Репутация: нет
|
насколько я знаю эту библиотеку можно цепануть к любым сям. |
||
|
|||
JackYF |
|
||
полуавантюрист Профиль
Репутация: 1
|
стоп. Ещё раз. Где исходник? Причём тут qt к ошибкам в подключении mysql.h? ——————— Пожаловаться на меня как модератора можно здесь. |
||
|
|||
Saman |
|
||
Новичок Профиль Репутация: нет
|
дело в том, что поискав по инету инфу про mysql.h — например при подключении к билдеру необходимо в объявлении переменной my_socket поменять её тип. как поступать в случае qt — я не знаю исходник кину позже — но эта ошибка при компиляции появляется просто при добавлении
|
||
|
|||
bsa |
|
||
Эксперт Профиль
Репутация: нет
|
Saman, для начала попробуй добавлять не #include «mysql.h», а #include <mysql.h>. ——————— Правильно заданный вопрос — половина ответа |
||
|
|||
Saman |
|
||
Новичок Профиль Репутация: нет
|
работаю под мастдаем мускул 5.0.21 строчку -Iпуть_до_инклудов_мускула прописывать после mingw32-make? |
||
|
|||
bsa |
|
||
Эксперт Профиль
Репутация: нет
|
вообще-то эту строчку надо прописывать как опцию компилятора (как именно — зависит от среды разработки, в которой пишешь). ——————— Правильно заданный вопрос — половина ответа |
||
|
|||
Saman |
|
||
Новичок Профиль Репутация: нет
|
mingw32-make — это как раз компиллятор
? |
||
|
|||
HiTech |
|
||
Новичок Профиль
Репутация: нет
|
<<— Это поюзай |
||
|
|||
Saman |
|
||
Новичок Профиль Репутация: нет
|
какая тут кроссплатформенность? |
||
|
|||
|
Правила форума «C++: Базы данных» | |
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
-
Summary
-
Files
-
Reviews
-
Support
-
News
-
Discussion
-
Donate
Menu
▾
▴
Error when I try to compile
Creator:
Anonymous
Created:
2012-10-15
Updated:
2013-05-28
-
Hi,
I am using VS2010 express ( also codelite ). I got an error trying to compile a test code. This is the error I got when I compile in VS2010:1>—- Rebuild All started: Project: sockets, Configuration: Debug Win32 —-
1> sockets.cpp
1>sockets.obj : error LNK2019: unresolved external symbol «public: __thiscall NL::Socket::~Socket(void)» (??1Socket@NL@@QAE@XZ) referenced in function _main
1>sockets.obj : error LNK2019: unresolved external symbol «public: void __thiscall NL::Socket::send(void const *,unsigned int)» (?send@Socket@NL@@QAEXPBXI@Z) referenced in function _main
1>sockets.obj : error LNK2019: unresolved external symbol «public: __thiscall NL::Socket::Socket(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int,enum NL::Protocol,enum NL::IPVer)» (??0Socket@NL@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IW4Protocol@1@W4IPVer@1@@Z) referenced in function _main
1>sockets.obj : error LNK2019: unresolved external symbol «void __cdecl NL::init(void)» (?init@NL@@YAXXZ) referenced in function _main
1>D:DesarrollosCppSocketVSsocketsDebugsockets.exe : fatal error LNK1120: 4 unresolved externals
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========I have added ws2_32.lib but I got error
Thanks in advance any suggestion
-
Hello,
Looks like you included the headers but didn’t included in the project the «netlink.lib» (or whatever you named it in the static library project).
To use the library:
1- First create a project (static library) and include the sources of the «src» folder to compile and include «include» folder in headers path. Building it you get a lib file.
2- Use the headers of the «include» folder in headers path and also link against the lib file you created in the previous step to use the library in your project.Can you confirm me if that was the cause?
-
Hi,
Thanks for your responsde.
Indeed, I didnt realize that I have to build a static lib first.Let me try, and I will tell you
-
Hi
I have a similar problem. example (ehoserver) is compiled with the following error:||=== test_2, Debug ===|
/home/me/workspace/test_2/netlink/socket.h|39|error: expected constructor, destructor, or type conversion before ‘class’|
/home/me/workspace/test_2/netlink/socket.inline.h|34|error: ‘Socket’ has not been declared|
/home/me/workspace/test_2/netlink/socket.inline.h|34|error: non-member function ‘const std::string& hostTo()’ cannot have cv-qualifier|
/home/me/workspace/test_2/netlink/socket.inline.h||In function ‘const std::string& hostTo()’:|
/home/me/workspace/test_2/netlink/socket.inline.h|36|error: ‘_hostTo’ was not declared in this scope|
/home/me/workspace/test_2/netlink/socket.inline.h|45|error: ‘Socket’ has not been declared|
/home/me/workspace/test_2/netlink/socket.inline.h|45|error: non-member function ‘const std::string& hostFrom()’ cannot have cv-qualifier|
/home/me/workspace/test_2/netlink/socket.inline.h||In function ‘const std::string& hostFrom()’:|
/home/me/workspace/test_2/netlink/socket.inline.h|47|error: ‘_hostFrom’ was not declared in this scope|
/home/me/workspace/test_2/netlink/socket.inline.h|56|error: ‘Socket’ has not been declared|
/home/me/workspace/test_2/netlink/socket.inline.h|56|error: non-member function ‘unsigned int portTo()’ cannot have cv-qualifier|
/home/me/workspace/test_2/netlink/socket.inline.h||In function ‘unsigned int portTo()’:|
/home/me/workspace/test_2/netlink/socket.inline.h|58|error: ‘_portTo’ was not declared in this scope|
/home/me/workspace/test_2/netlink/socket.inline.h|67|error: ‘Socket’ has not been declared|
/home/me/workspace/test_2/netlink/socket.inline.h|67|error: non-member function ‘unsigned int portFrom()’ cannot have cv-qualifier|
/home/me/workspace/test_2/netlink/socket.inline.h||In function ‘unsigned int portFrom()’:|
/home/me/workspace/test_2/netlink/socket.inline.h|69|error: ‘_portFrom’ was not declared in this scope|
/home/me/workspace/test_2/netlink/socket.inline.h|77|error: ‘Protocol’ does not name a type|
/home/me/workspace/test_2/netlink/socket.inline.h|87|error: ‘IPVer’ does not name a type|
/home/me/workspace/test_2/netlink/socket.inline.h|97|error: ‘SocketType’ does not name a type|
/home/me/workspace/test_2/netlink/socket.inline.h|110|error: ‘Socket’ has not been declared|
/home/me/workspace/test_2/netlink/socket.inline.h|110|error: non-member function ‘unsigned int listenQueue()’ cannot have cv-qualifier|
/home/me/workspace/test_2/netlink/socket.inline.h||In function ‘unsigned int listenQueue()’:|
/home/me/workspace/test_2/netlink/socket.inline.h|112|error: ‘_listenQueue’ was not declared in this scope|
/home/me/workspace/test_2/netlink/socket.inline.h|121|error: ‘Socket’ has not been declared|
/home/me/workspace/test_2/netlink/socket.inline.h|121|error: non-member function ‘bool blocking()’ cannot have cv-qualifier|
/home/me/workspace/test_2/netlink/socket.inline.h||In function ‘bool blocking()’:|
/home/me/workspace/test_2/netlink/socket.inline.h|123|error: ‘_blocking’ was not declared in this scope|
/home/me/workspace/test_2/netlink/socket.inline.h|134|error: ‘Socket’ has not been declared|
/home/me/workspace/test_2/netlink/socket.inline.h|134|error: non-member function ‘int socketHandler()’ cannot have cv-qualifier|
/home/me/workspace/test_2/netlink/socket.inline.h||In function ‘int socketHandler()’:|
/home/me/workspace/test_2/netlink/socket.inline.h|136|error: ‘_socketHandler’ was not declared in this scope|
/home/me/workspace/test_2/main.cpp|9|error: expected constructor, destructor, or type conversion before ‘int’|
||=== Build finished: 26 errors, 0 warnings ===|I program in Code :: Blocks IDE and put my archive project:
http://depositfiles.com/rmv/8119164037975235
that suggest?
-
Hello Kisly,
I have found where the problem is. You have modified library source files: for example in socket.h commenting
#include «netlink/core.h»
replacing it for
#include «socket.h»
(I don’t know why).
I assume you have changed the includes instructions inside the sources of the library because you had problems making the compiler find them but you only have to add the include folder in the search path of the compiler to make it find them rather to modify the code of the library (as this leads to errors).
So what I suggest you is:
* Do not modify the source code of the library.
* Add include folder (as it is in the library package) to the search path of the compiler (in codeblocks go to project -> build options -> search directories -> compiler -> add)I also would suggest you to build the library as static library instead of including all the sources files each time but this is totally up to you.
Please let me know if this solved your problem.
Regards.
-
Hi,
I tried without succeed.
I build a small console project.
I added all files, and include «netlink include folder» in codelite search
I got this:
g++ -c «D:/Desarrollos/Librerias/netlibsocket/src/socket.cc» -g -O0 -Wall -o ./Debug/src_socket.o -I. -ID:/Desarrollos/Librerias/netlibsocket/include/ -I.
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:39:27: error: variable or field ‘freeaddrinfo’ declared void
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:39:27: error: ‘PADDRINFOA’ was not declared in this scope
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc: In function ‘const char* NL::inet_ntop(int, const void*, char*, socklen_t)’:
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:53:49: error: ‘getnameinfo’ was not declared in this scope
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:63:50: error: ‘getnameinfo’ was not declared in this scope
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc: In member function ‘void NL::Socket::initSocket()’:
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:180:56: error: ‘getaddrinfo’ was not declared in this scope
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:182:54: error: ‘freeaddrinfo’ was not declared in this scope
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc: In member function ‘void NL::Socket::sendTo(const void*, size_t, const string&, unsigned int)’:
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:461:66: error: ‘getaddrinfo’ was not declared in this scope
D:/Desarrollos/Librerias/netlibsocket/src/socket.cc:463:54: error: ‘freeaddrinfo’ was not declared in this scope
mingw32-make.exe: *** Error 1
netlibsocket.mk:121: recipe for target `Debug/src_socket.o’ failed
mingw32-make.exe: Leaving directory `D:/Desarrollos/Librerias/netlibsocket’
mingw32-make.exe: *** Error 2
netlibsocket_wsp.mk:4: recipe for target `All’ failed
——-Build Ended——-
8 errors, 0 warningsCould you put a full project for download?
-
Hi,
As for the version 1.0.0-pre3 Mingw is not supported and the library doesn’t work for this compiler.
For windows platform is officially supported and tested Visual C++ 2008 Express Edition (you can download it for free). Any further version (as VC++ 2010) should be fine.
The compilers supported and tested are:
Windows: VC++ 2008+
OSX: g++
Linux: g++, intel compilerI hope this helps.
Regards.
Log in to post a comment.