Windows 실행 파일을 실행할 때 인터프리터를 찾을 수 없습니다

Windows 실행 파일을 실행할 때 인터프리터를 찾을 수 없습니다

와인을 제거하고 소스를 컴파일하여 최신 버전의 와인을 설치했습니다.

그러나 exe 실행 파일(경로는 )을 실행하면 $PATH이전처럼 작동하지 않습니다.

$  PDFXCview.exe   

run-detectors: unable to find an interpreter for /home/tim/program_files/document/pdfxchange_portable/PDFXCview.exe

이전 와인을 제거하고 새 와인을 설치하기 전에 왜 이 실행 파일을 직접 실행할 수 있었는지 모르겠습니다. $ PDFXCview.exe지금은 어떻게 일자리를 찾을 수 있나요 ?

노트:

$ wine /home/tim/program_files/document/pdfxchange_portable/PDFXCview.exe

작동합니다.

$ wine PDFXCview.exe 

wine: cannot find L"C:\\windows\\system32\\PDFXCview.exe"

작동하지 않습니다. 경로는 PDFXCview.exe아직 남아 있습니다.$PATH

감사해요.

답변1

와인을 제거하고 소스를 컴파일하여 최신 버전의 와인을 설치했습니다. 그러나 exe 실행 파일(경로가 $PATH에 있음)을 실행하면 이전처럼 작동하지 않습니다.

분명히 볼 수 있듯이 다음은 잘 작동합니다.

wine file.exe

그러나 다음은 그렇지 않습니다

# for a file in the current directory
./file.exe              

# for a file that is included your path             
file.exe

내 와인 버전은 debian/jessie-backports의 v1.8.3이고
최소한 v1.6.2(debian/jessie의 기본 버전)까지 작동해야 합니다.

다음을 수행해야 합니다.

sudo apt-get install wine-binfmt
sudo update-binfmts --import /usr/share/binfmts/wine


이제 와인으로 호출하지 않고도 위에 표시된 바이너리를 실행할 수 있습니다 .

파일은 exe실행 파일로 표시되어야 합니다.

chmod a+x file.exe

답변2

Linux에는 파일을 실행하라는 지시가 있을 때 커널이 인터프리터 프로그램을 호출하도록 플러그인을 등록할 수 있는 메커니즘이 있습니다.binfmt_misc. 바라보다chroot는 크로스 컴파일 환경에서 qemu를 어떻게 사용합니까?자세한 개요를 확인하세요.

Wine 패키지는 /usr/bin/wine설치 스크립트의 일부로 또는 패키지에 포함된 시작 스크립트를 통해 Windows 실행 파일에 대한 인터프리터로 등록됩니다. homebrew에서 이 작업을 수행할 수 있습니다 . 일부 배포판에는 패키지가 인터프리터를 등록한 다음 Debian 및 그 파생 제품 wine과 같이 시작 시 커널에 인터프리터를 등록할 수 있는 메커니즘이 있습니다 . update-binfmts또는 시작 중에 인터프리터를 커널에 등록할 수 있습니다.에 쓰기/proc/sys/fs/binfmt_misc/register. 이전에 사용한 패키지를 살펴보고 이전에 작동했던 패키지를 조정하는 것이 좋습니다.

답변3

systemd와의 충돌로 인해 발생해야 합니다.

파일을 확인하여 아래와 같이 설정 에 플래그가 추가되어 있는지 /etc/wsl.conf확인하시기 바랍니다. 그렇다면 false로 전환하세요.systemd = true[boot]

스니페이스트_2023-01-12_11-45-09

자세한 내용은 https://learn.microsoft.com/en-us/windows/wsl/wsl-config#per-distribution-configuration-options-with-wslconf를 참조하세요.

답변4

자, 잘 들어보세요. 이것이 당신이 하는 일입니다.

/usr/bin/pdfxcview.exe에 넣으세요.

#!/bin/bash
# Call up a command;
wine /home/tim/program_files/document/pdfxchange_portable/PDFXCview.exe

그런 다음 터미널에서 호출합니다.

$ chmod +x /usr/bin/pdfxcview.exe

^ 실행 가능 비트를 켜짐으로 설정하세요.

$ pdfxcview.exe

소스 코드 차이점

소프트웨어의 자유는 훌륭하지 않나요? 경로에 대한 설명이 있는 것 같습니다. "env"를 입력하여 환경을 인쇄하면 Program Files 디렉터리가 표시될 수 있습니다.

Launchpad Librarian은 Ubuntu 개발자가 작업에 대한 문서를 보관하여 시스템을 최신 상태로 안전하게 유지하는 곳입니다.

관련 정보