2017-08-26 3 views
-2

私のコードで使用されるsocket()関数は-1を返します。それについての詳細は、()をexample_socket知るINORDERを添加し、-lexplainコンパイル中HEADERFILE'explain_setsocket'への未定義の参照

#include<libexplain/socket.h> 

を追加しているにも追加されます。

#include <libexplain/socket.h> 
main(){ 
int sock; 
if((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1){ 
       char message[5000]; 
     memset(message,0,5000); 
       printf("\nSOCKET ERROR\n"); 
     printf("err: socket() failed"); 
     fprintf(stderr, "%s\n", explain_socket(AF_INET, SOCK_DGRAM, 0)); 
     exit(EXIT_FAILURE); 
    } 
} 

この問題を解決するために私を助けてください:しかし、私はエラー

`explain_socket」への未定義参照

コードの下に持っています。


[更新from comment]

コンパイルコマンド:

cc xyz.c -lexplain -o xyz 
+1

'sopcket.h'と' example_socket'とは何ですか? – melpomene

+2

{if((sock = ...)== -1){fprintf(stderr、 "err:socket()failed:%s \ n"、strerror(errno)); exit(EXIT_FAILURE); } '? – melpomene

+1

実際のコンパイルコマンドを表示します。コンパイラへの引数の順序( 'gcc'のような)は大変重要です。 –

答えて

0

コンパイルコマンド:あなたはライブラリを指定したいかもしれません

cc xyz.c -lexplain -o xyz 

最後にコマンドラインで:

cc xyz.c -o xyz -lexplain 
+0

コードは大きなプログラムの一部です。コンパイル用のmakeファイルを作成します。 – student

関連する問題