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開発者が作業に関する文書を保管し、システムを最新の状態に保ちます。

関連情報