Windows
このファイルは、WindowsにJuliaをインストールまたはビルドし、使用する方法について説明しています。
より一般的な情報については、main README または documentation をご覧ください。
General Information for Windows
私たちは、特にWindows Terminalを使用して、最新のターミナルアプリケーションでJuliaを実行することを強くお勧めします。これは、Microsoft Storeからインストールできます。
Line endings
Juliaはバイナリモードのファイルのみを使用します。他の多くのWindowsプログラムとは異なり、ファイルに\n
を書き込むと、ファイル内に\n
が得られ、他のビットパターンにはなりません。これは他のオペレーティングシステムで示される動作と一致します。Windows用のGitをインストールしている場合、システムGitを同じ規約を使用するように設定することが推奨されますが、必須ではありません。
git config --global core.eol lf
git config --global core.autocrlf input
または %USERPROFILE%\.gitconfig
を編集し、行を追加/編集します:
[core]
eol = lf
autocrlf = input
Binary distribution
Windowsにおけるバイナリ配布のインストールノートについては、以下の指示を参照してください。 https://julialang.org/downloads/platform/#windows
Source distribution
Cygwin-to-MinGW cross-compiling
WindowsでJuliaをソースからコンパイルする推奨方法は、Cygwinからクロスコンパイルすることであり、Cygwinのパッケージマネージャーを通じて入手可能なMinGW-w64コンパイラのバージョンを使用します。
Cygwin セットアップをダウンロードして実行してください 32 bit または 64 bit。32ビットまたは64ビットの Cygwin から、32ビットまたは64ビットの Julia をコンパイルできます。64ビット Cygwin は、やや小さいですが、しばしば最新のパッケージの選択肢があります。
高度な: 次のコマンドを実行することで、ステップ2-4をスキップできます:
sh setup-x86_64.exe -s <url> -q -P cmake,gcc-g++,git,make,patch,curl,m4,python3,p7zip,mingw64-i686-gcc-g++,mingw64-i686-gcc-fortran,mingw64-x86_64-gcc-g++,mingw64-x86_64-gcc-fortran
replacing
<url>
with a site from https://cygwin.com/mirrors.html or run setup manually first and select a mirror.インストール場所とダウンロードするミラーを選択してください。
パッケージを選択ステップで、以下を選択してください:
- Devel カテゴリから:
cmake
,gcc-g++
,git
,make
,patch
- ネットカテゴリから:
curl
- インタプリタ(またはPython)カテゴリから:
m4
,python3
- アーカイブ カテゴリから:
p7zip
- 32ビットのJulia、およびDevelカテゴリから:
mingw64-i686-gcc-g++
とmingw64-i686-gcc-fortran
- 64ビットのJulia用、またDevelカテゴリから:
mingw64-x86_64-gcc-g++
とmingw64-x86_64-gcc-fortran
- Devel カテゴリから:
Cygwinのインストールが完了したら、インストールされたショートカット 'Cygwin Terminal' または 'Cygwin64 Terminal' から開始してください。
ソースからJuliaとその依存関係をビルドする:
ジュリアのソースを取得する
sh git clone https://github.com/JuliaLang/julia.git cd julia
ヒント: gitから
error: cannot fork() for fetch-pack: Resource temporarily unavailable
というエラーが出た場合は、~/.bashrc
にalias git="env PATH=/usr/bin git"
を追加し、Cygwinを再起動してください。Make.user
ファイル内でXC_HOST
変数を設定して、MinGW-w64クロスコンパイルを示します。```sh echo 'XC_HOST = i686-w64-mingw32' > Make.user # for 32 bit Julia
or
echo 'XCHOST = x8664-w64-mingw32' > Make.user # for 64 bit Julia ```
ビルドを開始する
sh make -j 4 # Adjust the number of threads (4) to match your build environment. make -j 4 debug # This builds julia-debug.exe
Juliaを直接実行可能ファイルを使用して実行する
sh usr/bin/julia.exe usr/bin/julia-debug.exe
make O=julia-win32 configure
make O=julia-win64 configure
echo 'XC_HOST = i686-w64-mingw32' > julia-win32/Make.user
echo 'XC_HOST = x86_64-w64-mingw32' > julia-win64/Make.user
echo 'ifeq ($(BUILDROOT),$(JULIAHOME))
$(error "in-tree build disabled")
endif' >> Make.user
make -C julia-win32 # build for Windows x86 in julia-win32 folder
make -C julia-win64 # build for Windows x86-64 in julia-win64 folder
Compiling with MinGW/MSYS2
MSYS2 は、Windows用のソフトウェア配布およびビルド環境です。
注意: MSYS2は64ビットのWindows 7以降が必要です。
MSYS2をインストールして設定します。
最新のインストーラーをダウンロードして実行してください 64-bit 配布のために。インストーラーの名前は
msys2-x86_64-yyyymmdd.exe
のようになります。MSYS2シェルを開きます。パッケージデータベースと基本パッケージを更新します:
pacman -Syu
MSYS2を終了して再起動します。残りの基本パッケージを更新します:
pacman -Syu
次に、Juliaをビルドするために必要なツールをインストールします:
pacman -S cmake diffutils git m4 make patch tar p7zip curl python
64ビットのJuliaをインストールするには、x86_64バージョンをインストールしてください:
pacman -S mingw-w64-x86_64-gcc
32ビットのJuliaをインストールするには、i686バージョンをインストールしてください:
pacman -S mingw-w64-i686-gcc
MSYS2の設定が完了しました。これでMSYS2シェルを
exit
してください。
プリビルド依存関係を使用して、Juliaとその依存関係をビルドします。
新しい MINGW64/MINGW32 shell を開いてください。 現在、mingw32 と mingw64 の両方を使用することはできないため、x86_64 と i686 バージョンをビルドしたい場合は、それぞれの環境で別々にビルドする必要があります。
Juliaのソースをクローンします:
git clone https://github.com/JuliaLang/julia.git cd julia
ビルドを開始する
make -j$(nproc)
make O=julia-mingw-w64 configure
echo 'ifeq ($(BUILDROOT),$(JULIAHOME))
$(error "in-tree build disabled")
endif' >> Make.user
make -C julia-mingw-w64
Cross-compiling from Unix (Linux/Mac/WSL)
Linux、Mac、またはWindows Subsystem for Linux (WSL)からWindows版のJuliaをビルドするために、MinGW-w64クロスコンパイラを使用することもできます。
まず、システムに必要な依存関係が揃っていることを確認する必要があります。wine (>=1.7.5)、システムコンパイラ、およびいくつかのダウンローダーが必要です。注意: WSLを使用している場合、Cygwinのインストールがこの方法に干渉する可能性があります。
Ubuntuで(他のLinuxシステムでは依存関係の名前は似ている可能性があります):
apt-get install wine-stable gcc wget p7zip-full winbind mingw-w64 gfortran-mingw-w64
dpkg --add-architecture i386 && apt-get update && apt-get install wine32 # add sudo to each if needed
# switch all of the following to their "-posix" variants (interactively):
for pkg in i686-w64-mingw32-g++ i686-w64-mingw32-gcc i686-w64-mingw32-gfortran x86_64-w64-mingw32-g++ x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gfortran; do
sudo update-alternatives --config $pkg
done
Macの場合: XCode、XCodeコマンドラインツール、X11(現在はXQuartz)、およびMacPortsまたはHomebrewをインストールします。次に、適切にport install wine wget mingw-w64
またはbrew install wine wget mingw-w64
を実行します。
ビルドを実行します:
git clone https://github.com/JuliaLang/julia.git julia-win32
cd julia-win32
echo override XC_HOST = i686-w64-mingw32 >> Make.user
作成
make win-extras
(make binary-dist
を実行する前に必要)make binary-dist
の後にmake exe
を実行して、Windows インストーラーを作成します。julia-*.exe
インストーラーをターゲットマシンに移動します。
64ビットWindows用にビルドする場合、手順は基本的に同じです。XC_HOST
のi686
をx86_64
に置き換えるだけです。(注:Macでは、wineは32ビットモードでのみ動作します)。
Debugging a cross-compiled build under wine
クロスコンパイルホスト上でクロスコンパイルされたJuliaのデバッグを最も効果的に行う方法は、Windows版のGDBをインストールし、通常通りwineの下で実行することです。利用可能なプリビルドパッケージ as part of the MSYS2 project は動作することが知られています。GDBパッケージの他に、pythonおよびtermcapパッケージも必要になる場合があります。最後に、GDBのプロンプトはコマンドラインから起動した場合に機能しないことがあります。これは、通常のGDBの呼び出しの前にwineconsole
を追加することで回避できます。
After compiling
上記のオプションのいずれかを使用してコンパイルすると、基本的なJuliaビルドが作成されますが、フルJuliaバイナリインストーラーを実行した場合に含まれる追加のコンポーネントは含まれません。これらのコンポーネントが必要な場合、最も簡単な方法は、make win-extras
の後にmake binary-dist
とmake exe
を使用してインストーラーを自分でビルドすることです。その後、生成されたインストーラーを実行してください。
Windows Build Debugging
GDB hangs with Cygwin mintty
- Windowsコンソール(cmd)でGDBを実行します。GDB may not function properlyをminttyで非Cygwinアプリケーションと共に使用します。必要に応じて、minttyからWindowsコンソールを起動するために
cmd /c start
を使用できます。
GDB not attaching to the right process
- Windows タスクマネージャーから PID を使用するか、
ps
コマンドのWINPID
を使用してください。Unix スタイルのコマンドラインツール(例:pgrep
)からの PID は使用しないでください。Windows タスクマネージャーで PID 列がデフォルトで表示されていない場合は、追加する必要があります。
GDB not showing the right backtrace
- Juliaプロセスにアタッチする際、GDBが正しいスレッドにアタッチしていない可能性があります。
info threads
コマンドを使用してすべてのスレッドを表示し、thread <threadno>
でスレッドを切り替えてください。 - 32ビット版のGDBを使用して32ビットビルドのJuliaをデバッグするか、64ビット版のGDBを使用して64ビットビルドのJuliaをデバッグしてください。
Build process is slow/eats memory/hangs my computer
Windows Superfetch と Program Compatibility Assistant サービスを無効にしてください。これらは spurious interactions と MinGW/Cygwin で知られています。
上記のリンクで述べたように、特に
svchost
による過剰なメモリ使用は、タスクマネージャーで高メモリのsvchost.exe
プロセスをクリックし、サービスに移動
を選択することで調査できます。原因を特定するまで、子サービスを1つずつ無効にしてください。BLODA に注意してください。 vmmap ツールは、そのようなソフトウェアの競合を特定するために不可欠です。 vmmap を使用して、bash、mintty、またはビルドを駆動するために使用される他の永続プロセスの読み込まれた DLL のリストを検査してください。基本的に、Windows システムディレクトリの外にある 任意の DLL は潜在的な BLODA です。