問題タブ [libffi]

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.

0 投票する
1 に答える
536 参照

ios - 関数のスウィズリング - 実行時にのみ認識される関数

Objective-C で関数をスウィズルしたい。問題は、実行時にのみスウィズルする必要がある関数を知っていることです。コード内のさまざまなメソッドには、さまざまな戻り値の型、入力パラメーターなどがあります。

関数とそれが属するクラスの名前が与えられた場合、ブロックを作成し、imp_implementationWithBlock を使用して IMP を作成し、この新しく作成された IMP で元のメソッドをスウィズルできる (ジェネリック) コードをどのように記述すればよいでしょうか。

0 投票する
1 に答える
601 参照

amazon-ec2 - Amazon EC2 インスタンス (CentOS) で pip を使用して mitmproxy をインストールする際の問題

pip を使用して EC2 Linux インスタンスに mitproxy をインストールしようとしています:

sudo pip install mitmproxy

私はpython2.7をインストールしましたが、現在libffiの2つのインスタンスがあります

$ rpm -qa | grep libff libffi-3.0.13-11.4.amzn1.x86_64 libffi-devel-3.0.13-11.4.amzn1.x86_64

しかし、インストール コマンドを実行しようとするたびに、次のエラー メッセージが表示されます。

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o build/temp.linux-x86_64-2.7/_openssl.c:423:30: fatal error: openssl/opensslv.h: No such file or directory #include <openssl/opensslv.h> ^ compilation terminated. error: command 'gcc' failed with exit status 1

私が間違っていると思いますか?

0 投票する
1 に答える
349 参照

cygwin - Windows (Cygwin) の utop で「#require "ctypes.foreign";;」を試行中にエラーが発生しました

Jonathan Protzenko によるすばらしいガイドのおかげで、Windows (Cygwin) にOCaml + OPAM + utopをインストールして実行することができました。utopでは、特にctypes + ctypes.foreignを使用して、さまざまな WinAPI 呼び出しにアクセスしてすばやく実験およびプロトタイプを作成できるようにしたいと考えています。理論的には、ctypesパッケージを正常にインストールできました (成功)。残念ながら、実際にそれらを utopにロードしようとすると、驚くべきエラー メッセージが表示されて惨めに失敗します。opam install ...

で同じことをしようとするとrlwrap ocaml、やや長いエラー メッセージが表示されます。

注:セッションの完全なトランスクリプトはこちらです。utopこれには、cmd.exe ターミナルでのセッションの出力とrlwrap ocaml、Cygwin ターミナルでの追加のセッションの出力が含まれています。

なぜそれが起こるのか、または状況をさらにデバッグ/特定/診断する方法がまったくわからないので、回避策を見つけることができます。(ちなみに、私は OCaml と OPAM のまったくの初心者ですが、C/C++ と Linux の一般的な経験はかなりあります。) 以下は、私が持っているいくつかの質問です。うまくいけば、問題を十分に解決するのに役立つと思います。障害物を乗り越えるために:

  • ローカルで git リポジトリ (つまり ctypes) を微調整して、元の github リポジトリの代わりに OPAM に渡す方法はありますか?
  • ctypesの問題#198でも示唆されているように、「libffiの静的バージョン」が機能する可能性があることに言及しているように見えるコメントをなんとかグーグルで検索しました。しかし、私は OCaml のまったくの初心者であり、残念ながら、この提案をutopに適用する方法がまったくわかりません。
  • どの libffi を ctypes に使用するかを OPAM に伝えるにはどうすればよいですか? (具体的には、「静的libffi」を使用するには?)
  • インストールしたmingw64-x86_64-libffi Cygwin パッケージが静的にリンクされているか、動的にリンクされているかを確認するにはどうすればよいですか? または、両方のバリアントが提供されている場合、ctypes はどちらを使用しますか? libffi.a が PIC (?) 再配置 [ -fpic?] にリンクされているかどうかを検出する方法について SO でいくつかの回答を見つけましたが、それらはすべて本当にハックのようで、少なくとも私の場合は、実際に機能しているようには見えませんでした。 .
  • どんな助けでも大歓迎です。OCaml、OPAM、utop、Cygwin の交差点にあることを考えると、これについて誰に尋ねればよいかさえわかりません。これらはすべて巨大で、多少無関係/直交するシステムです。問題を ctypes repo に投稿しようとしましたが、1か月以上経過したのは「パッチ歓迎」ラベルだけでした。