トップページ⇒tech
292コメント106KB

Linker && Loader

■ このスレッドは過去ログ倉庫に格納されています
0001さとし ◆k4PcAe16 NGNG
読んでる人いますか?
難しいような気がするんですが。。。
僕もリンカとローダを作れるようになれますか?
0271デフォルトの名無しさん2005/11/24(木) 23:57:00
>>268
ELFへの移行は
・共有ライブラリが作りやすい
・動的リンクがやりやすい
・クロス開発がやりやすい
・C++対応(コンストラクタとデストラクタ)
が主な理由。

64bit対応ってのは(当時と今は)あまり重要ではない。
未来は知らんが。
0272デフォルトの名無しさん2005/11/25(金) 00:07:06
>>270
DLLは基本的に再配置するものなので、必ず再配置セクションを持つ。
NTDLL.DLLも再配置セクションがあるので(dumpbinで覗いてみ)、
必要なら再配置できる。
0273デフォルトの名無しさん2005/11/25(金) 01:32:46
>>272
それだとImageBaseを固定するメリットってあんまりなくない?
0274デフォルトの名無しさん2005/11/25(金) 02:31:37
>>273
適当なアドレスに固定してるんじゃなくて、
一通りメモリに読み込んで再配置完了したのと同等のアドレスにしてある。

アプリ起動のたびにほぼ必ず読み込まれるシステム系のDLLを
毎回再配置しないで済む分、起動が速くなる。
0275デフォルトの名無しさん2005/12/21(水) 10:46:27
ビットマップをリンクしたいんだけど、どうしたらいいのか
とりあえず、ヒントくれ
0276デフォルトの名無しさん2005/12/21(水) 13:35:48
>>275
objcpy
0277デフォルトの名無しさん2005/12/25(日) 19:40:34
意外と知られていないが
Cygwin/Mingwが吐く relocatable object file は
MS環境でもリンクできる。

なので objcopy 最強。
0278デフォルトの名無しさん2005/12/25(日) 23:37:14
objcopyってsupported targetsにあればアーキテクチャを越えたバイナリ変換ってできる?
例えば
 elf32-i386 -> elf32-powerpcle
とか。
0279デフォルトの名無しさん2005/12/26(月) 00:50:29
>>278
できたと思った。昔configureして
ぜんぶ入りのobjcopyを作ったことがある
02802782005/12/26(月) 16:09:38
>>279
できないお  >_<

$ objcopy -I elf32-i386 -O elf32-powerpcle foo foo-ppc
objcopy: Warning: Output file cannot represent architecture `i386'


targetにはちゃんと入ってるお
$ objcopy 2>&1 | tail -1
objcopy: supported targets: elf64-x86-64 elf32-i386 a.out-i386-linux efi-app-ia32 elf64-little elf64-big
elf32-little elf32-big elf64-alpha ecoff-littlealpha elf32-hppa-linux elf32-hppa elf64-ia64-little elf64-ia64-big
efi-app-ia64 elf32-m68k a.out-m68k-linux elf32-powerpc aixcoff-rs6000 elf32-powerpcle ppcboot
elf64-powerpc elf64-powerpcle aixcoff64-rs6000 elf32-s390 elf64-s390 elf32-sparc a.out-sparc-linux
elf64-sparc a.out-sunos-big srec symbolsrec tekhex binary ihex
0281デフォルトの名無しさん2005/12/27(火) 20:48:33
だめかー。やっぱり一旦binaryを経由させないと無理か。
0282デフォルトの名無しさん2006/02/17(金) 13:52:54
保守!上げたら怒りますか?
1時間以内に返答が無かったら賛同してくれるものと見なす。
0283デフォルトの名無しさん2006/02/17(金) 14:14:27
別に怒りはしないが、age るならそれなりのネタを用意して欲しい物だな。
まさか、単なる保守 age じゃないよね??
0284デフォルトの名無しさん2006/02/17(金) 14:17:11
うわ。まだ見てる人がいただなんて!
ネタはないですね。そろそろ落ちるんじゃないかと思った。
しいて言えば本購入予定です。ハイ。
0285デフォルトの名無しさん2006/02/20(月) 11:25:05
保守。
0286デフォルトの名無しさん2006/02/21(火) 10:47:36
保守。
0287デフォルトの名無しさん2006/04/25(火) 10:08:26
.laと.soの違いって何ですか?
02882872006/04/25(火) 13:37:56
.a → .la
.so → .lo
というlibtool版か。

.soはあるのに、.laがなくなると起動しなくなるものがあるって事は、
.laをdlopenしているアプリがあるのかな。
02892872006/04/25(火) 16:17:41
がーん、.laって共有ライブラリの情報ファイルなんだな。
0290デフォルトの名無しさん2006/04/28(金) 22:50:10
>>287
そーそー、textファイルだから、開けてびっくりするよな。
libディレに、んなもんイッパイ入れんな!と、最初思ったよ。
0291デフォルトの名無しさん2006/08/24(木) 07:04:11
PEの.rsrcセクション
わかるやつおらんかね?
さっぱり意味のわかる資料がない

自分でリソース追加したいんだが
0292デフォルトの名無しさん2006/08/24(木) 22:16:10
binutils自ら追っかけてみれば?
■ このスレッドは過去ログ倉庫に格納されています