linker

재배치 주소 계산 빈도가 매우 낮습니다.
linker

재배치 주소 계산 빈도가 매우 낮습니다.

이사에 대해 배우고 있어요ELF 참조그리고이 블로그, 그런데 이전 주소를 계산할 수 없습니다. 유형의 두 개의 파일 A이 있고 연결 중에 이름이 지정된 부분을 병합하려고 한다고 가정합니다. 이러한 부분에는 파일 에 있는 기호와 파일 에 있는 기호가 포함됩니다. 재배치 항목과 재배치 오프셋이 있고 링커가 재배치 주소 충돌을 피하는 방법을 이해하지 못하는 경우 : 컴파일하는 동안 이러한 파일이 서로 알려지지 않기 때문에 이러한 오프셋이 동일할 수 있다고 가정합니다.BET_RELSSAASBBA.elfB....

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 an...

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/libpthread.so...

Admin

기존 .so 파일이 존재하더라도 로드할 수 없는 현상, Docker 호스트 OS에 종속적인 것으로 보입니다.
linker

기존 .so 파일이 존재하더라도 로드할 수 없는 현상, Docker 호스트 OS에 종속적인 것으로 보입니다.

Alma8 기반 Docker 컨테이너에 Qt6을 구축했으며 Docker 호스트는 Fedora 35입니다. 어떤 경우에는(아래 설명) 모든 Qt 라이브러리가 로드되지 않습니다 libQt6Core.so[.6[.2.4]]. 그러나 파일이 존재하고 올바른 디렉토리에서 검색됩니다. libQt6Dbus.so예를 들어 다른 Qt 라이브러리를 찾아 로드합니다. 광범위한 디버깅, 재구축, 웹 검색을 통해 근본 원인이 무엇인지, 어떻게 해결할 수 있는지에 대한 단서를 얻지 못했습니다. 포지셔닝 문제 문제의 범위를 다음...

Admin

meson이 다른 lib 디렉토리에 있는 라이브러리를 사용하도록 만드는 방법은 무엇입니까?
linker

meson이 다른 lib 디렉토리에 있는 라이브러리를 사용하도록 만드는 방법은 무엇입니까?

zita-convolver3과 zita-convolver4라는 두 가지 버전의 라이브러리가 있습니다. 시스템 라이브러리는 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 ...

Admin

링커와 로더의 존재 여부는 리눅스 등 운영체제에 따라 달라지는 것 아닌가요?
linker

링커와 로더의 존재 여부는 리눅스 등 운영체제에 따라 달라지는 것 아닌가요?

링커(컴파일된 링크를 수행하기 위한)와 로더(실행 파일을 실행하기 위한)의 존재는 Linux와 같은 운영 체제에 의존하지 않습니까? (저는 예전에는 Linux의 링커와 로더가 운영 체제에서 제공되거나 다른 응용 프로그램과 같은 소프트웨어에서 제공된다고 생각했습니다. 이제는 매우 특별하고 다르다고 생각합니다. 어떤 운영 체제를 설치하더라도 아마도 동일할 것입니다.) 링커와 로더가 기계어(예: ISA 수준)에 존재합니까? (그 수준에서는 운영체제가 없습니다.) 아니면 어셈블리 언어 수준인가요? 프로그래밍...

Admin