問題タブ [library-path]
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.
linux - Ubuntu への JavaComm API のインストール
この質問がインターネット上で何度か聞かれたことは知っていますが、この問題を解決するために約 1 週間を費やしましたが、ほとんど運がありませんでした。
Windows PC のローカル Apache サーバーで開発した Web プロジェクトを展開するために、リモートの Linux Ubuntu 11.0、32 ビット サーバーにJavaCommAPI (rs232 との通信を可能にするアーカイブされた Java パッケージ)をインストールしようとしています。
私を困惑させているのは、javax.comm.properties、comm.jar、および libSerialParallel.so を正しく配置することにより、.war Web プロジェクトを別の 32 ビット LinuxMint16 PC 上のローカル Apache サーバーにデプロイできることです。ファイルをそれぞれの場所に配置します。
System.getProperty("java.library.path"); を使用します。正しいライブラリ パスを見つけて、正しいファイルをインストールします。
私の LinuxMint16 では:
javax.comm.properties -- /usr/lib/jvm/java-7-openjdk-i386/jre/lib
comm.jar -- /usr/lib/jvm/java-7-openjdk-i386/jre/lib/ext
libSerialParallel.so -- /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386
....動作します!
私のリモートUbuntuサーバーでは、報告されたライブラリパスに対してまったく同じことをしました
(例: /usr/local/jdk/jdk1.7.0_45/jre/lib/javax.comm.properties ;
/usr/local/jdk/jdk1.7.0_45/jre/lib/ext/comm.jar ;
/usr/local/jdk/jdk1.7.0_45/jre/lib/i386/libSerialParallel.so)
...失敗 =(
注意事項: BuildPath ウィザード (プロジェクトを右クリック --> [ビルド パス] --> [外部 jar を追加]) を使用して、必要な apache jar と comm.jar を Eclipse のライブラリに追加しました。コマンドラインからのみアクセスしているリモートサーバーには明らかに使用できません。これが何らかの影響を与えているのではないでしょうか?
Java コンソールからのエラー出力 (System.err) をリモート サーバー用の別のファイルに出力しようとしました。そのフィードバックは、LinuxMint PC ですべてのファイルを並べ替えるのに非常に役立ちました。
これも奇妙なことに、ストリームを LinuxMintPC のローカル .txt ファイルに出力するのに奇妙に機能していますが、リモートの ubuntu サーバーで指定したファイルには出力していません。
私はここで本当に頭がおかしいです!! システムの適切なバージョンを混ぜ合わせて、スムーズな動作を妨げていますか? ここからどのように進めればよいかわかりません。誰かが何か洞察を持っているとしたら、私は幸せで死ぬでしょう。ありがとう
c++ - 実行時に 2 つの異なる ld_library_path を使用する
2 つのサブプログラムを開始する C++ プログラムを実行したいと考えています。問題は、あるプログラムが別のプログラムとして別のライブラリ パスを必要とすることです。だから私はこのようなものを持っています:
どうすればそれを達成できますか (または、実行時にこれが可能ではないでしょうか?)。前もって感謝します!
c - Solaris はどのようにライブラリ パスを決定しますか?
Solaris では、次のようcrle
にコマンドを使用してライブラリ パスを構成できます。
次のように、従来のLD_LIBRARY_PATH
方法を 使用することもできます。
Solaris はどのようにライブラリ パスを決定しますか? たとえば、Solaris はcrle path
最初から選択し、次にLD_LIBRARY_PATH
? しようとしgoogle
ますが、答えが見つかりません。
linux - Makefile でプロジェクトを 64 ビットのライブラリにリンクする方法
私はメイクファイルの初心者開発者で、src ディレクトリを含むプロジェクトを持っています。src ディレクトリ内には、次のような .c および .h ファイルがあります: file1.c、file2.c、main.c、header1.h、および header2.c。Main は file2.c に依存し、file2.c は file1.c に依存します。各ファイルは、私が持っている非標準ライブラリと非標準インクルード ディレクトリにもリンクする必要があります。ライブラリ ディレクトリとインクルード ディレクトリは/usr/lib/srr__lib
、/usr/bin/srr__bin
それぞれ と です。src ディレクトリに 1 つ、プロジェクトのルート ディレクトリにもう 1 つ、2 つの makefile を作成しました。src メイクファイルは次のとおりです。
ルート ディレクトリの makefile は次のとおりです。
すべての autotools コマンドを正常に実行し、./configure を実行してから make を実行すると、プロジェクトは文句を言いませんでした。make でエラーはありませんが、生成された実行可能ファイルを ./PR として実行すると、エラーが発生し、以下のエラーが表示されます。
共有ライブラリの読み込み中にエラーが発生しました: libsrr__ml__sharedmem_4core.so: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
ライブラリが64ビットで、私のマシンも64であるため、リンクのエラーだと思います。しかし、メイクファイルでこれをどのように言及できますか? どんな助けでも大歓迎です。
ld - 「/usr/bin/ld: cannot find -lglib-2.0」というメッセージが表示されるライブラリが見つからないのはどれですか?
私は Lazarus プログラムをクロスコンパイルし、64 ビットの Ubuntu 14.04 Trusty Tahr システムで 32 ビットのプログラムを作成しています。このメッセージが表示されると、すべてが最後までコンパイルされるようです。
存在しないためにこのエラー メッセージが表示されるライブラリの完全な名前は?
libc6-dev:i386
が最も可能性の高いライブラリのようですが、apt でインストールしようとするbuild-essential g++ gcc gcc-multilib
と削除されることが示されるため、中止します。