linker

再配置アドレスの計算頻度が非常に低い。
linker

再配置アドレスの計算頻度が非常に低い。

取締役について学んでいます。ELFリファレンスそしてこのブログところで、前の住所を計算できません。 タイプの2つのファイルAがあり、接続中に名前付き部分をマージしたいとします。これらの部分には、ファイル内のシンボルとファイル内のシンボルが含まれます。再配置エントリと再配置オフセットがあり、リンカが再配置アドレスの競合を回避する方法を理解していない場合:コンパイル中にこれらのファイルが互いに不明であるため、これらのオフセットは同じであると仮定します。BET_RELSSAASBBA.elfB.elfA.elfB.elf ET_EXECの再配置テーブルの目的は...

Admin

AIXのランタイム・ライブラリー検索順序
linker

AIXのランタイム・ライブラリー検索順序

私が正しく理解した場合、変数LIBPATHsumはLD_LIBRARY_PATHリンカのパラメータよりも優先順位が高くなります-blibpath。コンパイル中に指定されたパス(つまり-blibpath別のパス)に沿ってライブラリを検索するようにローダーに指示する方法を探しています。たとえば、Linuxには-rpath変数よりも優先順位が高いものがあります。 AIXでエミュレーションを探しています。 また、AIXでライブラリーを見つけるパスの優先順位を明確に説明できる場所を探しています。 ...

Admin

ccリンカエラー
linker

ccリンカエラー

私はDebian 12でGTKlibraryに基づいてCアプリケーションを書いています。 このプログラムはcmakeによって生成されたMakefileで構築されました。 ソースファイルのコンパイルステップは正確ですが、リンカがトリガされると次のエラーが発生します。 [ 3%] Linking C executable lux cc: error: -E or -x required when input is from standard input CMakeLists.txt ファイルは次のとおりです。 # Set the name and the su...

Admin

Debian 환경에서 Android 바이너리를 로드하는 방법은 무엇입니까?
linker

Debian 환경에서 Android 바이너리를 로드하는 방법은 무엇입니까?

adbdchroot 환경에서 실행하려고 합니다. 나는 안드로이드에서 잘 실행할 수 있습니다 LD_LIBRARY_PATH=$PWD ./linker64 $PWD/adbd. 실행하려고 하면 다음과 같은 ./adbd결과가 나타납니다 bash: ./adbd: cannot execute: required file not found. 실행하고 strace $PWD/adbd반환합니다: execve("/root/adbd", ["/root/adbd"], 0x7fcfe8dfd0 /* 8 vars */) = -1 ENO...

Admin

リンカーが libpthread を見つけることができません。
linker

リンカーが libpthread を見つけることができません。

両方のプログラムの32ビットバージョンを構築しようとしていますが、両方とも同じエラーメッセージが表示されます。 /usr/bin/ld: cannot find /media/34GB/Arquivos-de-Programas-Linux/Glibc-2.17-32bit/lib/libpthread.so.0 上記のパスでGlibcディレクトリを次に移動したので、なぜそれが見つからないのかを明確に理解してください。 /media/34GB/Arquivos-de-Programas-Linux-32bit/Glibc-2.17/lib/libpthre...

Admin

既存の.soファイルが存在してもロードできない現象、DockerホストOSに依存するようです。
linker

既存の.soファイルが存在してもロードできない現象、DockerホストOSに依存するようです。

Alma8ベースのDockerコンテナにQt6を構築し、DockerホストはFedora 35です。 場合によっては(下記)、すべてのQtライブラリはロードされませんlibQt6Core.so[.6[.2.4]]。ただし、ファイルが存在し、正しいディレクトリから検索されます。libQt6Dbus.soたとえば、別のQtライブラリを見つけてロードします。 幅広いデバッグ、再構築、ウェブ検索では、根本的な原因が何であるか、どのように解決できるかについての手がかりを得ることができませんでした。 ポジショニングの問題 問題の範囲を次のシナリオに絞り込んだ。 私は2...

Admin

mesonに別のlibディレクトリにあるライブラリを使用させる方法は?
linker

mesonに別のlibディレクトリにあるライブラリを使用させる方法は?

zita-convolver3とzita-convolver4という2つのバージョンのライブラリがあります。システムライブラリはzita-convolver3ですが、ローカルユーザーディレクトリに保存されているzita-convolver4に接続したいと思います。 システムバージョンzita-convolver3の優先順位を指定する代わりに、中間子をcompiler.find_library zita-convolver4に移動するにはどうすればよいですか? pkg-configファイルを使用して明示的に設定し、pkgconfig_pathを設定することでこ...

Admin

RAMをカーネルスペースとユーザースペースに分割する方法
linker

RAMをカーネルスペースとユーザースペースに分割する方法

私が知る限り、Linuxでは、RAMはカーネルスペースとユーザースペースに分かれています。カーネルスペースはカーネル実行用に予約されているため、ユーザースペースアプリケーションはそのメモリに直接アクセスしないでください。 このメモリはカーネル空間とユーザ空間にどのように分けられますか?カーネルをビルドするときにリンカスクリプトで定義されていますか? ...

Admin

リンカがヘッダファイルとライブラリファイルを見つけることができませんでした。
linker

リンカがヘッダファイルとライブラリファイルを見つけることができませんでした。

ここからCHERIエミュレータをインストールしました。協会。 これにより、 risc-v の clang コンパイラを使用でき、拡張された risc-v アーキテクチャ機能を使用できます。 次のエイリアスを定義しました。 alias clang-riscv='~/cheri/output/sdk/bin/clang -g -O2 -target riscv64-unknown-freebsd --sysroot="~/cheri/output/rootfs-riscv64-purecap" -fuse-ld=lld -mno-relax -march=rv6...

Admin

objcopy / elfeditを使用してelfファイルのシンボル(バージョン)をパッチします。
linker

objcopy / elfeditを使用してelfファイルのシンボル(バージョン)をパッチします。

コンテキストは次のとおりです。私のOSでは(すでに)liba.so.v2関数のシンボルバージョンとして文字列 "symbol_version-2" を含む "liba"。functionX@version-2(私の場合、例えば@NCURSES6_5.0.19991023 更新 存在するobjdump -T /readelf出力)。これは鳥です。バイナリ_aダウンロードして実行してみたかったです。ただし、これは以前のバージョンのライブラリに依存しているためliba.so.v1、 "symbol_version-1"などのさまざまなシンボルバージョン文字列が含...

Admin

cmakeとlibldapを使用した奇妙な接続の問題
linker

cmakeとlibldapを使用した奇妙な接続の問題

download_an_compile.shスクリプト(CMakeを使用してバイナリを構築します)を使用して、FlightGearプロジェクトでSimGearを構築しようとしています。これまではビルドがうまく行われていますが、スクリプトがビルドされたオブジェクトファイルをライブラリにリンクしようとすると、多くのメッセージが表示されます。 //usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2: warning: undefined reference to [email protected]_2 (ここで......

Admin

LD_PRELOADと動的リンカー
linker

LD_PRELOADと動的リンカー

だから私は動的ライナー(dl)のプリロード機能と、それがリンクされている他のすべての共有ライブラリをリンクする前に、LD_PRELOAD環境変数を使用してカスタム共有ライブラリ(.so)をロードするために使用できる方法について読みました。 。実行可能ファイルがロードされます。私は権限上昇の文脈でそれを読んだ。アプリケーションがロードする内容を制御できないのはなぜですか? 次のコードを生成してコンパイルしました。 #include <stdio.h> #include <sys/types.h> #include &l...

Admin

リンカーとローダーの存在は、Linuxなどのオペレーティングシステムによって異なりますか?
linker

リンカーとローダーの存在は、Linuxなどのオペレーティングシステムによって異なりますか?

リンカ(コンパイルされたリンクを実行するため)とローダ(実行ファイルを実行するため)の存在は、Linuxなどのオペレーティングシステムに依存しませんか? (私は以前は、Linuxのリンカーとローダーがオペレーティングシステムで提供されているか、他のアプリケーションと同じソフトウェアで提供されていると思いました。今では非常に特別で異なっていると思います。 リンカーとローダーは機械語(ISAレベルなど)に存在しますか? (そのレベルにはオペレーティングシステムはありません。)それともアセンブリ言語レベルですか? プログラミングソフトウェアの観点から、オペレーティ...

Admin