2014-05-12 54 views
3

如何使用Android NDK编译结构?为什么不在Android NDK中编译结构声明?

以下声明(正常工作与G ++)

#include <stdio.h> 
#include <stdlib.h> 
#include <sys/socket.h> 
#include <netdb.h> 
#include <cstring> 
#include <fstream> 
#include <sstream> 

//header construction here... 
    private: 
     struct sockaddr_in serv_addr; 

给出了错误:

error: field 'serv_addr' has incomplete type 
struct sockaddr_in serv_addr; 
       ^
+0

并不需要所有这些时下花哨[标签: android]标签。这很常见,请参阅@ David的回答!也可以在''处找到。 –

+1

@MahonriMoriancumer - 您决定删除C标签可能意味着您对备份C++所独有并且未与C共享的问题有足够的自信,因此请提供您的答案。否则,编辑应该被恢复,因为唯一的当前答案实际上是C++中每一位都应用于C的东西。 –

+2

问题的答案确实同样适用于C和C++。 –

回答

4

您需要添加#include <netinet/in.h>

+0

您可能还提到[](http://pubs.opengroup.org/onlinepubs/7908799/xns/arpainet.h.html),正如我在我的评论中所建议的那样。我真的在这里看不到任何_android_。 –

+0

为什么它会与另一个编译器编译呢? – user2212461

+0

我得到了与gcc和g ++相同的错误(在删除私有和C++头文件以使其成为C后) –