問題タブ [shared-libraries]

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 投票する
8 に答える
699238 参照

linux - ld は既存のライブラリを見つけることができません

この Debian lenny システムでアプリケーションを g++ にリンクしようとしています。ld は、指定されたライブラリが見つからないと不平を言っています。ここでの具体的な例は ImageMagick ですが、他のいくつかのライブラリでも同様の問題が発生しています。

私はリンカを次のように呼び出しています:

ld は不平を言います:

ただし、libmagic は存在します。

この問題をさらに診断するにはどうすればよいですか? また、何が間違っている可能性がありますか? 私は完全にばかげたことをしていますか?

0 投票する
3 に答える
1031 参照

python - アプリケーション間で内部Pythonライブラリを共有/管理するための最良の方法

私たちの会社(xyz)は、多くのFlashコードをPythonに移行しています。

Flashには、Flashアプリ間で共有ライブラリ(パッケージxyz)があります。Flashはコードをコンパイルし、ライブラリのコンテンツを含むため、デプロイ時に他のアプリを壊すことを恐れずにパッケージに変更を加えることができます。最終的なSWFをRPM経由でデプロイし、完了です。App1とApp2を更新しても、App3が破損することはありません。

共有ライブラリの依存関係であるPythonでこれにどのようにアプローチしますか。

App1、App2、およびApp3はすべてxyz-lib.rpmを必要とし、すべて同じライブラリファイルを使用しますが、新しいライブラリが存在するたびに、更新されたxyz-lib.rpmをApp1,2,3に対して明示的にテストする必要があります。 、そしてこれは面倒です。

私の現在のお気に入りのソリューション-app1.rpmに、パッケージ化されたときからライブラリを含めることができます-事実上、ライブラリのある種の静的リンク。しかし、これはエレガントではないと感じます。(ただし、追加コストはハードドライブのスペース==安いだけです。)

共有ライブラリをしっかりと管理することがおそらく最善の解決策であることは知っていますが、すべての開発者が人間であり、間違いを犯すことを考慮に入れています。私たちは間違いを犯すつもりです、そして私はapp1の展開がapp2とapp3を壊したくありません-それはテストとデバッグのためにもっとたくさんあります。

0 投票する
4 に答える
401 参照

c# - クライアントとサーバーでモノ共有コード。.

私たちはクライアントとサーバーの標準を考え出そうとしていますが、大きな議論があります. 考え方の 1 つは、C# クライアントと Java サーバーが、ある種の独自のメッセージ ライブラリを使用してデータ オブジェクトを共有することです (XML のような構造を考えてください...)。

このモデルの問題点は、サーバー上で C# を使用した場合に単純に再利用できる、複製 (検証、解析) が必要なコードが多数あることです。Linux マシンを使用する大きな推進力がある場合、モノはあなたの目標をサポートしません。.

他の誰かがこのジレンマを抱えていますか?

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

linux - クロスコンパイルされたライブラリの Linux lib / include 組織?

デスクトップ Linux で組み込み Linux ターゲット用のアプリケーションをクロスコンパイルしています。テストやその他の目的で、アプリケーションで静的にリンクされたライブラリを使用しています。使用しているテスト ライブラリはCMockeryです。

私の質問は次のとおりです。クロスコンパイルを行っている場合、CMockery の静的ライブラリとインクルード ファイルはどこに置くべきですか?

クロスコンパイルしていない場合は、 /usr/local/lib に配置する必要があります。

私たちのチームからのいくつかの提案は次のとおりです。

  • /opt/google/lib および /opt/google/include
  • /opt/ embeddedLinuxDistro /usr/local/share/google/lib (およびインクルード)
  • /usr/local/ arch /lib (およびインクルード)

    ポインタをいただければ幸いです!

  • 0 投票する
    3 に答える
    18820 参照

    asp.net - ASP.NETWebサイトのBINディレクトリと参照

    次の解決策を想像してみてください。

    • WebサイトABC.com(Webアプリケーションではない)
    • BLL(個別のアセンブリのビジネスロジック層)
    • DTO(独自のアセンブリ内のdtoオブジェクト)
    • DAL(独自のアセンブリ内のデータアクセス層も同様)。

      1. BLLにはDALへの参照があります。
      2. BLLにはDTOレイヤーへの参照があります。
      3. WebサイトプロジェクトはBLLを参照します。

    Webサイトプロジェクトをコンパイルすると、次のDLLがBINディレクトリに表示され ます
    。BLL.dllDTO.dll
    DAL.dll

    サイトをプレビューしようとすると、必要なアセンブリ参照がないというエラーが発生します...ここで、Webサイトプロジェクトの[参照の追加]を右クリックし、不足しているアセンブリへの参照を明示的に追加すると、正常に機能します。

    ASP.NETは、Webサイトで追加/参照されている参照アセンブリの参照アセンブリをプルしているように見えます。

    参照の参照に明示的な参照を追加する必要があるのはなぜですか...?私がこれを正しく表現していないか、混乱している場合は申し訳ありません。

    0 投票する
    5 に答える
    7206 参照

    linux - 共有ライブラリをエルフにパックする

    Elfが必要とするすべてのSOを静的に変換し、ElfをSOの無料に変換できるユーティリティはありますか?

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

    exception - DLL/共有ライブラリからの例外

    DLL を介してエクスポートされるクラスを含むライブラリを開発しているとします (Windows、または Linux ELF 共有ライブラリのような同様の共有ライブラリ)。これらのクラスのメンバー関数は、標準ライブラリまたはライブラリ定義の例外から例外をスローします。

    DLL のアドレス空間をマップするモジュールに例外をスローするように DLL でコーディングすることは完全に安全ですか? クライアント モジュールに例外がスローされる共有ライブラリでソフトウェア コンポーネントを開発する場合、どのような考慮事項がありますか?

    どうもありがとうございました。

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

    c++ - コンストラクターで例外をスローする静的メンバーを持つライブラリーでの dlopen - 結果は中止になります

    dlopen 関数を使用して動的ライブラリをロードしようとしています。このライブラリには、コンストラクターで例外をスローする静的オブジェクトが含まれています。dlopen 呼び出しの周りに「try-catch(...)」ブロックがありますが、例外がキャッチされず、「Abort」が表示されるだけです。

    この例外をキャッチするにはどうすればよいですか?

    0 投票する
    3 に答える
    13864 参照

    c++ - CまたはC++で外部関数をソース/リンクするにはどうすればよいですか?

    編集: それが重要な場合に備えて、明確にする必要があると思います。私はAIXUnixボックスを使用しているので、VACコンパイラーを使用しています。gnuコンパイラーは使用していません。 編集を終了


    私はC/C ++でかなり錆びているので、これが単純な質問であるなら許してください。

    いくつかのCプログラムから共通の関数を取り出して、共有ライブラリまたは共有オブジェクトに配置したいと思います。これをperlで行っている場合は、潜水艦をperlモジュールに入れ、必要に応じてそのモジュールを使用します。

    例として、私がこの関数を持っているとしましょう:

    明らかにこれは実際の例ではありませんが、その機能を共有したい場合、どのように進めますか?

    私には2つの選択肢があると確信しています。

    1. 共有関数をファイルに入れ、コンパイル時にメインプログラムでコンパイルします。共有関数に変更を加えた場合は、メインプログラムを再コンパイルする必要があります。
    2. 共有関数をファイルに入れ、共有ライブラリとしてコンパイルし(用語が正しければ)、メインプログラムにその共有ライブラリへのリンクを設定します。(コンパイル後に)共有ライブラリに加えた変更は、メインプログラムを再コンパイルせずに、実行時にメインプログラムに統合されます。

    私はその考えを正しくしていますか?

    もしそうなら、どうすればこれらの方法のいずれか/両方を完了することができますか?私はたくさん検索しましたが、自分のプログラムを他の人の共有ライブラリにリンクする方法についての情報を見つけたようですが、自分の共有関数を作成して自分のプログラムで使用できるようにコンパイルする方法はわかりません。 。

    本当にありがとう!

    ブライアン


    編集:

    結論

    皆さんの助けに感謝します!他の人が恩恵を受けることができるように、私はこの投稿に(AIX上の動的共有ライブラリーのために)私のために働いているものを追加すると思いました:

    共有関数をコンパイルします。

    次に、それを共有オブジェクトにします。

    次に、別のプログラムにリンクします。

    また、別のコメントがこのリンクを見つけるのに役立ちました。これも役立ちました:http: //publib.boulder.ibm.com/infocenter/comphelp/v7v91/topic/com.ibm.vacpp7a.doc/proguide/ref/compile_library.htm

    私を助けてくれたすべての人にもう一度感謝します!

    0 投票する
    5 に答える
    32180 参照

    linker - 共有ライブラリをリンクするときにシンボルの可視性を制限する

    一部のプラットフォームでは、共有ライブラリの外部シンボルのリストをリンカーに提供する必要があります。ただし、ほとんどの unixish システムでは必要ありません。すべての非静的シンボルがデフォルトで使用可能になります。

    私の理解では、GNU ツールチェーンはオプションで可視性を明示的に宣言されたシンボルだけに制限できるということです。GNU ldを使用してそれをどのように達成できますか?