[Armadillo:06811] Re: timer_create関数について

mizo email@hidden
2011年 2月 15日 (火) 10:30:38 JST


横溝です。

moto wrote:
> 横溝様
> 
> timer_create関数ですが、以下のディレクトにて
> 
> ~/atmark-dist-20090318/glibc/linuxthreads/sysdeps/pthread
> 
> 以下のコマンドにてコンパイル
> 
> arm-linux-gcc -Wall -fPIC -shared timer_create.c -o libtimer_create.so
> 
> した所以下の様なコンパイルエラーが発生いたしました。

librtをビルドする必要はありますか?もし、librtにカスタマイズを加える必要
が無いのであれば、timer_create()を使用するプログラムをビルドする際に、

-lrt

を付けてlibrtをリンクすると良いと思います。atde2にはlibrtのクロスライブ
ラリが標準でインストールされています。

[atde2]$ ls /usr/arm-linux/lib/librt*
/usr/arm-linux/lib/librt-2.3.6.so  /usr/arm-linux/lib/librt.so.1
/usr/arm-linux/lib/librt.a         /usr/arm-linux/lib/librt_p.a
/usr/arm-linux/lib/librt.so

例えば、以下のプログラム(sample.c)を用意した場合(何の意味も無いプログラ
ムですみませんが)に、
#include <stdio.h>
#include <time.h>
int main(void)
{
        timer_t timer;
	int ret;

        ret = timer_create(CLOCK_REALTIME, NULL, &timer);
        if(ret < -1)
                perror("timer_create");

        return 0;
}

以下のコマンドでビルドできると思います。
[atde2]$ arm-linux-gcc -Wall sample.c -lrt

以上ご確認ください。

> posix-timer.h:66: error: expected specifier-qualifier-list before ‘pid_t’
> posix-timer.h: In function ‘timer_addref’:
> posix-timer.h:125: error: ‘struct timer_node’ has no member named
> ‘refcount’
> posix-timer.h: In function ‘timer_delref’:
> posix-timer.h:131: error: ‘struct timer_node’ has no member named
> ‘refcount’
> timer_create.c: In function ‘timer_create’:
> timer_create.c:49: warning: implicit declaration of function ‘__set_errno’
> timer_create.c:81: error: ‘struct timer_node’ has no member named
> ‘creator_pid’
> 
> posi-timer.h内の定義がみつからない様です。
> これらのエラーを解消するにはどうしたらよいでしょうか?
> 
> Moto
> 
> ----- Original Message ----- From: "moto" <email@hidden>
> To: "Armadillo series general discussion list"
> <email@hidden>
> Sent: Wednesday, February 09, 2011 11:04 PM
> Subject: [Armadillo:06801] Re:timer_create関数について
> 
> 
>> 溝渕様
>>
>>  timer_create.cですがビルドする場合、作業ディレクトリはどちらになりま
>> すでしょうか?
>>
>>  よろしくお願いします。
>>
>> Moto
>>
>> ----- Original Message ----- From: "mizo" <email@hidden>
>> To: "Armadillo series general discussion list"
>> <email@hidden>
>> Sent: Tuesday, February 08, 2011 3:56 PM
>> Subject: [Armadillo:06780] Re: timer_create関数について
>>
>>
>>> 溝渕です。
>>>
>>> email@hidden wrote:
>>>>  armadillo-9にてPOSIX準拠のtimer_create関数を利用しようとしましたが、
>>>>   コンパイル時に sys/timerfd.h がみつからないというエラーが発生しま
>>>>   した。
>>>>
>>>>  現在の開発環境では、timer_create関数はサポートされていないのでしょ
>>>> うか?
>>>>  現在の環境は以下の通りです。
>>>>  linux-2.6.12.3-a9-17 atmark-dist-20090318
>>>>
>>>> 何かご存知でしたらご教授お願いします。
>>>
>>> [atde2]$ cd /usr/arm-linux/include/
>>> [atde2]$ grep timer_create
>>> :
>>> ./time.h:extern int timer_create (clockid_t __clock_id,
>>> なので、定義はtime.hにあります。
>>>
>>> [atde2]$ arm-linux-gcc -Wall timer_create.c -lrt
>>> でビルド可能だと思いますが、動作確認は行っていません。
>>>
>>> 以上ご確認ください。




armadillo メーリングリストの案内