Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇2963:
Re[2]:.oファイルからデータを抜き取る方法 [kgon] 06/24 11:01

 └◇2964:Re[3]:.oファイルからデータを抜き取る方法 [nil] 06/24 <


2963● Re[2]:.oファイルからデータを抜き取る方法[ kgon ] 2005 06/24 11:01
waさんご返答ありがとうございます。

>なにが目的でそんなことをやっているのかわかりませんが、

説明不足ですいません。
目的ですがプラットフォームのメモリが少ないため
メモリ不足を解消するため
状況によってでデータを読み込もうと考えました。
そのため今までCで記述したデータをバイナリにしなくてはならないので、安易な考えでソースからバイナリに変換できないか?というのが発端です。


>テキストの羅列からバイナリデータを作成するのであれば、
>xbm/xpm, ppm/pnm あたりを調べた方が早いかと思います。

残念ながらテキストの羅列だけではないため
この方法はできないと思われます。


>オブジェクトファイルの段階では実アドレスが確定できません。
>・・・
>仮にセットしておくコンパイラがほとんどです。

なるほど、そういうことだったんですね。
あまりコンパイラの動きとか気にせずやってきたもので
まったく知りませんでした。
もっと勉強しなければ・・・。

リンカを通すとアドレスが入ってきましたので
リンカスクリプトを使用して解決できそうです。
いろいろ教えて頂きありがとうございました。
とても助かりました。
スレッド一覧


2964● Re[3]:.oファイルからデータを抜き取る方法[ nil ] 2005 06/24 13:01

うう、そもそも Cygwinの話じゃない…

|>テキストの羅列からバイナリデータを作成するのであれば、
|>xbm/xpm, ppm/pnm あたりを調べた方が早いかと思います。
|残念ながらテキストの羅列だけではないため
|この方法はできないと思われます。

waさんがおっしゃっているのは、"Cで記述したデータ"であれば(ソースがあるん
だったら)、例えば下記のような "なんらかのテキストの羅列(記述)"であるはず
なので、必要な部分から(整形しなおして?)バイナリに変換するような、簡単な
スクリプト等を自前で用意するほうがはるかに容易で手早いはず(まっとうだし)、
ということだと思いますが…

int as32Data[] = {
0xFF00FF00,

# うう、解決手段のまともな方向とは思えない… sigh.
# そもそも endian や byte swapぐらい後処理してもいいだろし、
# Symbol table の OFFSET ぐらい binutils で参照できるだろし…
スレッド一覧

早田のホームページへ
CGIROOM