[Armadillo:07520] Re: clock_gettime()の参照解決

Takenoshita Koyo email@hidden
2011年 9月 5日 (月) 15:50:34 JST


竹之下です。

> 共有ライブラリを使用して、ダイナミックリンクできると一番いいのですが。。。
共有ライブラリは、存在していますか?

手元の環境では、以下のようになっています。
[ATDE ~]$ ls -l /usr/arm-linux-gnueabi/lib/librt*
-rw-r--r-- 1 root root 26572 2009-10-21 19:01 /usr/arm-linux-gnueabi/lib/librt-2.7.so
-rw-r--r-- 1 root root 63858 2009-10-21 19:06 /usr/arm-linux-gnueabi/lib/librt.a
lrwxrwxrwx 1 root root    10 2010-06-10 23:00 /usr/arm-linux-gnueabi/lib/librt.so -> librt.so.1
lrwxrwxrwx 1 root root    12 2010-06-10 23:00 /usr/arm-linux-gnueabi/lib/librt.so.1 -> librt-2.7.so

もし、共有ファイルが存在するのに、それを見つけてくれない場合、
PKGCONFIG_PATHが適切に設定されていない場合が考えられます。

makefileとして、以下のものを使うとlibrtを探してくれるようになりませんでしょうか?
targetの部分は、適当に読み替えてください。

============ makefile ここから ======================
CROSS := arm-linux-gnueabi

ifneq ($(CROSS),)
CROSS_PREFIX := $(CROSS)-
PKGCONFIG_PATH  := /usr/$(CROSS)/lib/pkgconfig
endif

CC = $(CROSS_PREFIX)gcc
CFLAGS = -Wall -Wextra -O2
LDFLAGS = -lrt

all: target

target: target.o
	$(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@

clean:
	$(RM) *~ *.o $(TARGET)

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<
============ makefile ここまで ======================

もし、それでもダメな場合、makefile とビルドログを見せていただくことはできますか?

(2011年09月05日 15:28), nakayama junichi wrote:
> いつもお世話になっております。
> ONICOSの中山と申します。
> 
> 標題の件ですが、
> ATDE環境にある
> /usr/arm-linux-gnueabi/lib/librt.a
> を直接スタティックリンクするという方法でとりあえず解決しました。
> 
> 共有ライブラリを使用して、ダイナミックリンクできると一番いいのですが。。。
> 
> -----------------------------------
> 中山 純一(Nakayama Junichi)
> オニコス株式会社
> TEL:03-5850-4345
> FAX:03-3801-3051
> e-mail:email@hidden
> -----------------------------------
> 
> 
> --------------------------------------------------
> From: "nakayama junichi" <email@hidden>
> Sent: Monday, September 05, 2011 2:39 PM
> To: "Armadillo series general discussion list" 
> <email@hidden>
> Subject: [Armadillo:07514] Re:clock_gettime()の参照解決
> 
>> いつもお世話になっております。
>> ONICOSの中山と申します。
>>
>>> あるプログラムでclock_gettime()システムコールを呼んでいるのですが、
>>> これをクロスコンパイルしようとすると参照エラーになります。
>>
>> 補足情報です。
>> コンフィグレーションで、使用するCライブラリは
>> (None) Libc Version
>> と設定しており、
>> ATDE3の/home/atmark/atmark-dist-20110704/lib
>> にはlibrtがない状態です。
>>
>> email@hidden:~/atmark-dist$ ls /home/atmark/atmark-dist-20110704/lib -l
>> 合計 104
>> -rw-r--r-- 1 atmark atmark 5840 2011-07-04 12:10 Makefile
>> drwxr-xr-x 7 atmark atmark 4096 2011-07-04 12:10 STLport
>> drwxr-xr-x 6 atmark atmark 4096 2011-07-04 12:10 adns
>> drwxr-xr-x 11 atmark atmark 4096 2011-07-04 12:10 expat
>> drwxr-xr-x 2 atmark atmark 4096 2011-07-04 12:10 flex
>> drwxr-xr-x 2 atmark atmark 4096 2011-07-04 12:10 libaes
>> drwxr-xr-x 5 atmark atmark 4096 2011-07-04 12:10 libatm
>> drwxr-xr-x 24 atmark atmark 4096 2011-07-04 12:10 libc
>> drwxr-xr-x 7 atmark atmark 4096 2011-07-04 12:10 libccmalloc
>> drwxr-xr-x 2 atmark atmark 4096 2011-07-04 12:10 libcrypt_old
>> drwxr-xr-x 2 atmark atmark 4096 2011-07-04 12:10 libdes
>> drwxr-xr-x 3 atmark atmark 4096 2011-07-04 12:10 libg
>> drwxr-xr-x 11 atmark atmark 4096 2011-07-04 12:10 libgmp
>> drwxr-xr-x 2 atmark atmark 4096 2011-07-04 12:10 libjpeg
>> drwxr-xr-x 10 atmark atmark 4096 2011-07-04 12:10 libldap
>> drwxr-xr-x 2 atmark atmark 4096 2011-07-04 12:10 libm
>> drwxr-xr-x 2 atmark atmark 4096 2011-09-05 13:23 libnet
>> lrwxrwxrwx 1 atmark atmark 53 2011-09-05 14:18 libnet.a -> 
>> /home/atmark/atmark-dist-20110704/lib/libnet/libnet.a
>> drwxr-xr-x 11 atmark atmark 4096 2011-07-04 12:10 libpam
>> drwxr-xr-x 7 atmark atmark 4096 2011-07-04 12:10 libpcap
>> drwxr-xr-x 5 atmark atmark 4096 2011-07-04 12:10 libpng
>> drwxr-xr-x 4 atmark atmark 4096 2011-08-01 16:44 libsysfs2
>> drwxr-xr-x 5 atmark atmark 4096 2011-07-04 12:10 libupnp
>> lrwxrwxrwx 1 atmark atmark 49 2011-09-05 14:18 libz.a -> 
>> /home/atmark/atmark-dist-20110704/lib/zlib/libz.a
>> drwxr-xr-x 7 atmark atmark 4096 2011-09-05 13:23 nss-mdns
>> drwxr-xr-x 4 atmark atmark 4096 2011-07-04 12:10 prebuild
>> drwxr-xr-x 7 atmark atmark 4096 2011-09-05 13:23 zlib
>>
>> 以上、よろしくお願いいたします。
>>
>> -----------------------------------
>> 中山 純一(Nakayama Junichi)
>> オニコス株式会社
>> TEL:03-5850-4345
>> FAX:03-3801-3051
>> e-mail:email@hidden
>> -----------------------------------
>>
>>
>> --------------------------------------------------
>> From: "nakayama junichi" <email@hidden>
>> Sent: Monday, September 05, 2011 1:50 PM
>> To: "atmarktechno ML" <email@hidden>
>> Subject: [Armadillo:07512]clock_gettime()の参照解決
>>
>>> いつもお世話になっております。
>>> オニコス株式会社の中山と申します。
>>>
>>> ATDE3環境で、Armadillo-440上で動作するアプリケーションを開発しています。
>>> あるプログラムでclock_gettime()システムコールを呼んでいるのですが、
>>> これをクロスコンパイルしようとすると参照エラーになります。
>>>
>>> librtをリンクしていないので、当り前なのですが、
>>> -lrtというオプションを付けると
>>> /usr/arm-linux-gnueabi/lib/
>>> ではなく、
>>> /usr/lib/にあるライブラリをリンクしようとするのです。
>>> このため、ファイルフォーマットが違う、というメッセージが出てビルドに 
>>> 失敗します。
>>> (なお、こちらで作成したMakefileではVPATH変数の値を上書きしております)
>>>
>>> 初歩的な問題かもしれませんが、
>>> アドバイス等をいただけますと幸いです。
>>>
>>> 以上、よろしくお願いいたします。
>>>
>>> -----------------------------------
>>> 中山 純一(Nakayama Junichi)
>>> オニコス株式会社
>>> TEL:03-5850-4345
>>> FAX:03-3801-3051
>>> e-mail:email@hidden
>>> -----------------------------------
>>>
>>>
>>> _______________________________________________
>>> armadillo mailing list
>>> email@hidden
>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 


-- 
Koyo Takenoshita




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