問題タブ [dynamic-library]

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 に答える
577 参照

ruby - Mac で 32 ビット Ruby を使用して 64 ビット dylib を実行する

ruby-llvmをインストールしようとしていました。

でllvmをインストールでき、コマンドでbrew install llvm -sharedインストールすることもできました。ruby-llvmsudo gem install ruby-llvm

しかし、サンプルを実行しようとすると、これらのエラー メッセージが表示されました。

動的ライブラリが 64 ビットであることを確認しました。

また、ruby は 32bit モードで動作しているようです。ruby 1.9.3p194 (2012-04-20 revision 35410) [i386-darwin11.4.0].

この問題を解決するにはどうすればよいですか? ruby-llvmの 32 ビット版または 64ビット版をダウンロードする方法はありrubyますか?

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

linux - Issue with Qt dynamic library in Linux

I built an application based on QuickFIX Engine in Qt, named fixapp; it works fine. My broker asked me to specify a local port to connect to them. Then I couldn't find such configuration file, so I modified the source code of QuickFix.

I used the examples of tradeclient and executor brought by QuickFIX source code to test. This works. tradeclient binds to a local port I specified in configuration file.

However, when I turn to fixapp, using the library built by the modified QuickFIX source code, it doesn't bind to the local port I specified. It seems that the part I modified didn't change the behavior of the program.

What are the potential problems here?

Update: I tried to set some breakpoints in QuickFix source code. In one cpp file I modified, my breakpoint is ignored. It is Debug Mode, not release mode. I feel like that it is running the old cpp file and showing the new cpp file.

0 投票する
2 に答える
4022 参照

python - Python 2.6.6 で sqlite3 をインポートすると共有ライブラリ _sqlite3.so が見つからない

わかりました、私はこれのために 2 日間戦ってきました。それは通常、単純すぎて実現できないことを意味します。

ubuntuでクロスコンパイルする組み込みLinuxシステムがあります。Python をコンパイルするとき、コンパイルできなかったモジュールのリストに sqlite3 がありません。

ただし、_sqlite3.so ライブラリは、Python-2.6.6/build/lib.linux868-2.6/ の json.so や ctypes.so array.so などと同じ場所にはありません。

init-functions などを含む実際のモジュールは、Python-2.6.6/modules の適切な場所にあり、ターゲット システムでも見つけることができます。

so-file が見つからなかったので、arm-compiler を使用して共有ライブラリとして自分でコンパイルしてみました。これもうまくいきませんでした。

手動でコンパイルされた so-file を使用しない場合:

lib-dynloads にあるコンパイル済みの共有ライブラリを使用:

編集:sqlite3用の適切なライブラリをコンパイルしたかどうか疑問に思っていました. 私が今理解している限り、_sqlite3.soはpythonビルダーが作成するものであり、libsqlite3.soはそれをビルドするために必要なライブラリですか? また、libsqlite3.so は Sqlite3 ソース コードからビルドされています。私はここで間違っていますか?

組み込みの Linux または Python の経験が豊富な人なら、ここで何が間違っているのか分かりますか?

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

c++ - エラーメッセージのこのディレクトリはどこを指していますか?

Xcode でプログラムを実行していましたが、生成される出力は

dyld: ライブラリがロードされていません: /fserver/mo/engine_build/BUILD_mac_64/climp/LIBS/nag_lm/libnagc_nag.dylib 参照元: /Users/William/Library/Developer/Xcode/DerivedData/Regression_Function-cmkvscbmyfohphbgblelwgtabfup/Build/Products/Debug/回帰関数の理由: 画像が見つかりません

/fserver確認しましたが、ルートの下に呼び出されるディレクトリはありません。エラーメッセージの意味とパスは/fserver/mo/engine_build/BUILD_mac_64/climp/LIBS/nag_lm/libnagc_nag.dylibどこですか?

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

c++ - LinuxのC++プログラムからsoファイルに存在するクラスとその関数を呼び出す方法

重複の可能性:
Linux上のC++動的共有ライブラリ

クラスと関数を持つlibtest.soという共有オブジェクトを書いています。libtest.soファイルにあるクラスとその関数を呼び出す「Program.cpp」という別のプログラムがあります。どうすればいいのかわからない。助けてください。

よろしくマヘシュありがとう

0 投票する
0 に答える
695 参照

linux - Ogre ダイナミック リンク ライブラリ

鬼のライブラリを動的にリンクしようとしています。サンプル ブラウザ以外のサンプルの過去のリンク ライブラリを取得できました。

これがログです..

欠落していると不平を言っているヘッダーファイルは、作業ディレクトリにあります。私はまた、それが不平を言ったヘッダーファイルを手動でコピーしようとしましたが、これが私が得たものです。

0 投票する
2 に答える
1663 参照

c - 動的ライブラリ (Linux ELF) の特定のセクションへのポインタを取得するには?

この質問の 2 番目の回答でわかるように、セクションの名前を使用して、プログラム内からプログラムの特定のセクションへのポインターを取得するのは非常に簡単です。を使用libelfすると、プログラム自体のファイルを開き、その中のすべてのセクション (構造体で表されるElf64_Shdr) をループし、セクション名が必要なものと一致したときに停止し、構造体のsh_addr要素に格納されているポインターを使用しますElf64_Shdr。この場合、必要なポインターは ELF 実行可能ファイルで定義されているため、取得するのは非常に簡単です。

しかし、動的ライブラリを使用するプログラムがあり、その動的ライブラリのセクションへのポインターを取得する必要があるとします。セクションのアドレスは実行時に定義されるため、動的ライブラリのセクションへのポインターを取得するにはどうすればよいでしょうか?

ところで、動的ライブラリとメイン プログラム自体の両方に、それぞれに同じ名前のセクションがあります (これは、ポインターを取得する必要があるセクションです)。したがって、この場合、同じ名前のこれら 2 つのセクションがメモリに隣接して格納される可能性があるため、(最初の段落で説明したように) メイン ファイルのセクションへのポインターを取得し、オフセットを追加するだけで済みます。動的ライブラリ セクションに到達するには?

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

c++ - ダイナミックライブラリの未定義の参照でPythonラッパーをブーストする

私は現在、複雑なプログラムの一部をダイナミックライブラリに入れようとしています。この部分は、ブーストPythonでモジュールにラップされて再び埋め込まれるいくつかのクラスで構成されています。これは、dllソースの簡略化されたバージョンです。

Hello.cpp:

Hello.h

次に、アプリケーションのメイン関数で、Pythonを埋め込むクラスのインスタンスを作成しますが、関数がダイナミックライブラリlibFoo.dllで定義されていても、World :: foo()への未定義の参照が提供されます。メインアプリケーション。

main.cpp:

コンソール:

MinGWでCode::Blocksを使用しています。

この問題は私を何日か目覚めさせてくれました、そして私はそれを解決する方法を見つけることができないようです。あなたが私を助けてくれることを願っています。

前もって感謝します。

アップデート:

私は今、通常のPythonCAPIを使用してこのタスクを実行しようとしました。このエラーが確実に関連しているPython_Module(BOOST_PYTHON_MODULE())を定義する手順は、次のような関数を定義することによって行われます。

今これの前に書いています

エラーを解決します。boost.pythonライブラリがBOOST_PYTHON_MODULE関数をどのように定義するか誰かがいますか?たぶん、この種の解決策もありますか?ソースファイルにPyMODINIT_FUNCのものが見つかりませんでした。

0 投票する
0 に答える
390 参照

c++ - DLL からコア プログラムへの外部データでの前方宣言

このチュートリアルで説明されているように、C++ クラス定義とプロキシ パターンに基づくコア プログラムを含む dll を作成しています: http://www.linuxjournal.com/article/3687

具体的には、この dll は、コア プログラムにロードされた後、コア プログラムのデータ構造内のクラス名、メソッド名、およびメソッドの関数ポインタを含む定義を埋めます。

ただし、この記事では 1 つの基本的な種類だけではなく、さまざまな種類のクラスに合わせてこのパターンを変更したいと考えています。これが、関数ポインターを使用する理由です。

私のプログラムは次のとおりです。

このプログラムでは、コア問題の 2 つのデータ構造体を抽出します。

  1. class_map: コア プログラムにロードされた dll にすべてのクラスが含まれます。method_map:
  2. method_map: 各クラスのすべてのメソッドの説明が含まれています。class_map と method の関係は 1 対多です。しかし、class_map_ と method_map の宣言順序に問題があります。具体的には、クラス Proxy の外に class_map を extern しますが、このクラス内にもメソッド構造を定義する必要があります。次のリンクで前方宣言を使用しようとしました:いつ前方宣言を使用できますか? 、しかし、それは動作しません。

私の問題についてあなたの解決策を見たいと思っています。本当にありがとう

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

c++ - qstring エクスポート結果のエンコードの設定

ライブラリ関数 UTF8 でエンコードされた文字列からエクスポートするにはどうすればよいですか?