簡単な紹介:-(GCCバージョン4.6.3、OS-Ubuntu 12.04、mongoose Webサーバープログラムを回避しているので、「make」コマンドを実行してmongooseをコンパイルおよびインストールすると、タスクは正常に実行されます)。
[質問のパート1] この質問は、stackowerflowに関するこの投稿を参照しています。
mongooseWebサーバーのhelloworldプログラム
Valenokは、この投稿にhelloサンプルプログラムへのリンクを提供することで回答しました。
基本的に、私はこのリンクで与えられたサンプルのhelloプログラムコードをコンパイルしようとしています:-
http://code.google.com/p/mongoose/source/browse/examples/hello.c
このコードをmongooseのコンパイル済みディレクトリに配置します(ディレクトリにはmongoose.hファイルがあります)
以下は、helloプログラムをコンパイルするためのコマンドライン出力です。
akshay@akshay-Inspiron-N5010:~$ gcc mongoose/hello.c -o mongoose/hello
/tmp/ccroC5Z6.o: In function `callback':
hello.c:(.text+0x32): undefined reference to `mg_get_request_info'
hello.c:(.text+0x96): undefined reference to `mg_printf'
/tmp/ccroC5Z6.o: In function `main':
hello.c:(.text+0xee): undefined reference to `mg_start'
hello.c:(.text+0x103): undefined reference to `mg_stop'
collect2: ld returned 1 exit status
akshay@akshay-Inspiron-N5010:~$
[質問のパート2]
ここで、mongoose.cファイルにmg_stop、mg_start、mg_printf、mg_get_request_infoの実装が見つかったので、-cオプションを指定してmongoose.cファイルを次のようにコンパイルします:gcc -c -o mongoose.o mongoose.c
私の質問は:-に似ていると思います
しかし、libmongoose.soをgccの-Lオプションとリンクすると、次のエラーが発生します:-( libmongoose.soは同じディレクトリにあります。mycwd)
akshay@akshay-Inspiron-N5010:~/mongoose$ gcc -L libmongoose.so -o hello hello.o mongoose.o
mongoose.o: In function `mg_start_thread':
mongoose.c:(.text+0x1369): undefined reference to `pthread_create'
mongoose.o: In function `load_dll':
mongoose.c:(.text+0xa955): undefined reference to `dlopen'
mongoose.c:(.text+0xa9b4): undefined reference to `dlsym'
collect2: ld returned 1 exit status
また、libmongoose.soを使用せずにコンパイルすると、上記の^^エラーが発生し続けます。
[編集]:gccに-pthreadオプションを追加しましたが、まだエラーが表示されます:-mongoose.o:関数load_dll':
mongoose.c:(.text+0xa955): undefined reference to
dlopen'でmongoose.c:(。text+ 0xa9b4): `dlsym'への未定義の参照collect2:ldが1つの終了ステータスを返しました
私の質問のパート1とパート2について:これらのエラーを取り除き、hello.cプログラムサンプルを正常に実行したいと思います。前もって感謝します 。