[過去ログ]
関数型プログラミング言語Haskell Part16 (978レス)
関数型プログラミング言語Haskell Part16 http://echo.5ch.net/test/read.cgi/tech/1317958045/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
939: デフォルトの名無しさん [sage] 2012/01/02(月) 02:01:59.64 FFI 関連について質問です C言語で構造体と、それを引数として受ける関数などを作りました(*.h、*.c) *.hsc ファイル内でそのヘッダファイルを include し、 C言語で定義したのと同じ構造のデータ型を定義しました そして、Storable 型のインスタンス宣言の中で、 #size や #alignment マクロを使って Storable.sizeOf や Storable.alignment を定義しました (#alignment マクロは下記のサイトのものをそのまま使いました http://stackoverflow.com/questions/8350706/how-do-i-find-the-alignment-value-when-defining-a-storable-instance ghc 7.2.2 ですけど、まだ組み込みマクロではないようですね) そのあと、ghc2hs コマンドで *.hsc から *.hs を生成し、 また *.c をコンパイルして *.o を生成し、 それらを一緒に ghc でビルドしようと思います (まぁ実際は、*.c のまま ghc に一緒に放り込んでも良いわけですが) そこで質問なのですが、この場合、 *.c は ghc 付属の gcc、あるいは別に用意した同Var.の gcc でコンパイルしないと、 構造体のメモリマップが ghc2hs の解釈と(理論上は)合わないと思うのですが、 この認識は間違ってないでしょうか 正確に言えば、ghc の -pgmc オプションで指定したC言語コンパイラ、 hsc2hs の --cc オプションで指定したC言語コンパイラ、 そして *.c をコンパイルしたC言語コンパイラ、 この3つのコンパイラが同じ物でないと危険なのではないでしょうか (たまたま、VC++ のコンパイラなどとその辺りの仕様が同じ場合もあるでしょうが) http://echo.5ch.net/test/read.cgi/tech/1317958045/939
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 39 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s