問題タブ [hsc2hs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - hsc2hs C++ ヘッダー
一部の C++ ソースに対して、FFI を使用して Haskell 実行可能ファイルをビルドしようとしています。
次のような C ヘッダー (cstuff/foo.h) があります。
foo の実装は重要ではありません。何かを実行し、途中で somecppheader.h で宣言されたものを使用します。
Cabal ファイルの実行可能セクションは次のようになります。
Main.hsc は次のようになります。
この例では hsc2hs は実際には必要ありません。説明しようとしているエラーをトリガーするために使用されているだけです。
問題は、somecppheader.h が C++ 固有の構造を持つ C++ ヘッダーであり、foo.h のインクルードが C ヘッダーとしてコンパイルされているように見えることです。これは、クラス定義などの C++ 構造のために失敗します。
foo.h を gcc ではなく g++ でコンパイルする必要があることを hsc2hs または Cabal に伝えるにはどうすればよいですか?
haskell - hsc2hs タイプを特殊化する方法は?
hsc2hs を介して取得した型に SPECIALIZE プラグマを使用しようとしています#type
。
私はこのようなことを試しました:
parse error on input '#'
その試みは(最初の) で失敗します#{type DWORD}
。
私はうまくいくことがわかった答えを出しましたが、よりクリーンなもの、より正確には、モジュールのコード全体に影響を与えないものを本当に望んでいます。
linux - hsc2hs での ARM の問題に対する cabal クロスコンパイル
cabal-install
ARM 用にクロスコンパイルしようとしています。前提条件のパッケージを 1 つずつインストールすることになりました。このページに従って、いくつかのパッケージを構成、ビルド、およびインストールすることができました。
Haskell コードをクロスコンパイルするときに依存関係をインストールするにはどうすればよいですか?
network
後にこのエラーが発生したパッケージに到達するまで./Setup build
:
この後、追加しました
構成に切り替えますが、今回は遭遇しました
どうやら私のarm-unknown-linux-gnueabihf-hsc2hs
ツールはホスト上で実行されていません。なぜこうなった?そして、たとえば、機能しarm-unknown-linux-gnueabihf-ghc
ているのに機能していないのはなぜhsc2hs
ですか? 最後に、元のnetwork
パッケージをインストールするための回避策はありますか?
haskell - Haskell と C FFI で作業するために hsc2hs でスタックを使用しますか?
file.hsc
通常は を介して前処理する必要があるスタック プロジェクトがありますhsc2hs file.hsc
。
代わりに実行stack build
すると、ファイルは前処理なしで通常の haskell ファイルとして読み込まれます。
質問:hsc2hs
スタックを同時に使用する方法はありますか? 理想的には、実行するだけでstack build
、すべてが「機能する」だけです。