2014-05-12 76 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後) –