1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Wine のメモ

Last updated at Posted at 2020-06-18

背景

  • Linux でも Vulkan + Windows アプリ(C++)を動かしたい
  • Windows アプリ: COFF バイナリを想定

自身の file path を Windows アプリ 側で見せるには,

WINE とは?

エミュレータではありません. COFF バイナリ直実行環境というのが正しいでしょうか?
古い Windows アプリは動かせるかもしれませんが, 新しめのとかは難しそうです.

基本的には Linux で Vulkan アプリを GPU アクセラレートさせてうごかしたいとか, COFF バイナリをコマンドラインでバッチ処理したいとかの開発者向けと考えたほうがよいでしょう.

普通に Windows アプリ(Office とか, Visual Studio とか, e-Tax ソフトとか)を動かしたいのであれば, 仮想環境(e.g. VirtualBox) をおすすめします.

Linux で ./exe 直実行

Explorer

winefile or wine explorer で, Explorer 相当

APPDATA

Wine 自体は XP 相当っぽいようです.
%APPDATA% は Win7, Win10 とちょっと違うところにあります.

winecfg で, Wine の動作を Win10 モードにすると変わるかも?

Start メニューやデスクトップ

Wine 自体では, Start メニューや Desktop shortcut あたりはそんなには対応していないようです.

別アプリを使えば行けるかも?

一部インストーラーではうまくインストールできなかったりするかもです.

ファイルパス

Linux ですと,

z:/ にマッピングされています. Linux 側のファイルシステムを Windows アプリ側にマッピングするときに役立ちます.

winepath C:\ などで, Linux のどこにマッピングされているか確認できます.

通常は,~/.wine/dosdevices が基点になっています.

wineprefix で変更することができます.

PATH 変数など

Windows での PATH 変数は, WINEPATH 環境変数で設定(複数 PATH は ; で区切る)します.

Wine PATH through command line and not persistent
https://stackoverflow.com/questions/7249791/wine-path-through-command-line-and-not-persistent

永続的に設定したい場合は registory を設定するしかないようです(WINE 用の環境変数エディタはないかしらん?)が, WINEPATH を設定して起動する bash script つくるか, batch ファイル作ってそこに PATH 追加したりしたのを起動させるで対応が現実的なところでしょうか.

その他の Linux の環境変数は, WINE 環境に引き継がれます.

dll path

WINEDLLPATH だとビルトインの dll だけでした..

.exe と同じディレクトリに .dll を置くか,
WINEPATH により, (Windows 側での) PATH 変数で dll へのパス設定する必要があります.

Linux 側(Linux bash 側)ですと

$ WINEPATH="C:/Users/syoyo/lib"  ./a.exe

のようになります. PATH 変数は Windows の流儀に従うので複数の場合は ; で区切ります.

あんまり試していないので正しいかわかりませんが, デフォルトの %PATH% も含めたいときは以下のような感じでしょうか.

$ WINEPATH="%PATH%;C:/Users/syoyo/lib" ./a.exe

ちなみに backslash はエスケープせずに使えました. 空白も同様にエスケープせずに使えると思われます.

# OK
$ WINEPATH="%PATH%;C:\Users\syoyo\lib" ./a.exe

WINPREFIX

より広範囲に環境を切り替えて(dlls 群や app 群を切り替えて使いたいなど) Wine うごかしたい場合は, WINEPREFIX がよさそうです!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?