▼スレッド
│
└◇2963:Re[2]:.oファイルからデータを抜き取る方法 [kgon] 06/24 11:01
└◇2964:Re[3]:.oファイルからデータを抜き取る方法 [nil] 06/24 <
waさんご返答ありがとうございます。スレッド一覧
>なにが目的でそんなことをやっているのかわかりませんが、
説明不足ですいません。
目的ですがプラットフォームのメモリが少ないため
メモリ不足を解消するため
状況によってでデータを読み込もうと考えました。
そのため今までCで記述したデータをバイナリにしなくてはならないので、安易な考えでソースからバイナリに変換できないか?というのが発端です。
>テキストの羅列からバイナリデータを作成するのであれば、
>xbm/xpm, ppm/pnm あたりを調べた方が早いかと思います。
残念ながらテキストの羅列だけではないため
この方法はできないと思われます。
>オブジェクトファイルの段階では実アドレスが確定できません。
>・・・
>仮にセットしておくコンパイラがほとんどです。
なるほど、そういうことだったんですね。
あまりコンパイラの動きとか気にせずやってきたもので
まったく知りませんでした。
もっと勉強しなければ・・・。
リンカを通すとアドレスが入ってきましたので
リンカスクリプトを使用して解決できそうです。
いろいろ教えて頂きありがとうございました。
とても助かりました。
スレッド一覧
うう、そもそも Cygwinの話じゃない…
|>テキストの羅列からバイナリデータを作成するのであれば、
|>xbm/xpm, ppm/pnm あたりを調べた方が早いかと思います。
|残念ながらテキストの羅列だけではないため
|この方法はできないと思われます。
waさんがおっしゃっているのは、"Cで記述したデータ"であれば(ソースがあるん
だったら)、例えば下記のような "なんらかのテキストの羅列(記述)"であるはず
なので、必要な部分から(整形しなおして?)バイナリに変換するような、簡単な
スクリプト等を自前で用意するほうがはるかに容易で手早いはず(まっとうだし)、
ということだと思いますが…
int as32Data[] = {
0xFF00FF00,
# うう、解決手段のまともな方向とは思えない… sigh.
# そもそも endian や byte swapぐらい後処理してもいいだろし、
# Symbol table の OFFSET ぐらい binutils で参照できるだろし…