Windows
このファイルは、Windows上でJuliaをインストールまたはビルドし、使用する方法について説明しています。
一般的なJuliaに関する情報については、main READMEまたはdocumentationを参照してください。
General Information for Windows
私たちは、特に Microsoft Store からインストールできる Windows Terminal を使用して、最新のターミナルアプリケーションで Julia を実行することを強くお勧めします。
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 = inputBinary distribution
Windowsのバイナリ配布インストールノートについては、https://julialang.org/downloads/platform/#windowsの指示を参照してください。ただし、すべてのプラットフォームでusing juliaupがバイナリを手動でインストールするよりも推奨されます。
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-fortranreplacing
<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 juliaTip:
error: cannot fork() for fetch-pack: Resource temporarily unavailableというエラーがgitから出た場合は、~/.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の実行ファイルを直接使用して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 folderCompiling with MinGW/MSYS2
MSYS2 は、Windows 用のソフトウェア配布およびビルド環境です。
注意: MSYS2は64ビットのWindows 7以降が必要です。
MSYS2をインストールして設定します。
最新のインストーラーをダウンロードして実行してください 64-bit 配布のために。インストーラーの名前は
msys2-x86_64-yyyymmdd.exeのようになります。MSYS2シェルを開きます。パッケージデータベースと基本パッケージを更新します:
pacman -SyuMSYS2を終了して再起動します。残りの基本パッケージを更新します:
pacman -Syu次に、Juliaをビルドするために必要なツールをインストールします:
pacman -S cmake diffutils git m4 make patch tar p7zip curl python64ビットのJuliaをインストールするには、x86_64バージョンをインストールしてください:
pacman -S mingw-w64-x86_64-gcc32ビットのJuliaをインストールするには、i686バージョンをインストールしてください:
pacman -S mingw-w64-i686-gccMSYS2の設定が完了しました。これで、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-w64Cross-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
doneMacの場合: 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-win32cd julia-win32echo 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を使用してください。デフォルトで表示されていない場合は、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サービスを無効にしてください。これらは、MinGW/Cygwinでspurious interactionsとして知られています。
上記のリンクで述べたように、
svchostによる過剰なメモリ使用は、タスクマネージャーで高メモリのsvchost.exeプロセスをクリックし、サービスに移動を選択することで調査できます。原因が見つかるまで、子サービスを1つずつ無効にしてください。BLODA に注意してください。 vmmap ツールは、そのようなソフトウェアの競合を特定するために不可欠です。 vmmap を使用して、ビルドを駆動するために使用される bash、mintty、または他の永続プロセスの読み込まれた DLL のリストを検査してください。基本的に、Windows システムディレクトリの外にある 任意の DLL は潜在的な BLODA です。