窗户
此文件描述了如何在Windows上安装、构建和使用Julia。
有关Julia的更多一般信息,请参阅https://github.com/JuliaLang/julia/blob/master/README.md[主要自述]或https://docs.julialang.org[文件]。
二元分布
有关windows上的二进制分发安装说明,请参阅https://julialang.org/downloads/platform/#windows。但请注意,在所有平台上https://julialang.org/install/[使用 朱莉亚普]建议不要手动安装二进制文件。
来源分布
Cygwin-to-MinGW交叉编译
在Windows上从源代码编译Julia的推荐方法是从https://www.cygwin.com[Cygwin],使用通过Cygwin的包管理器提供的MinGW-w64编译器版本。
-
下载并运行Cygwin安装程序https://cygwin.com/setup-x86.exe[32位]或https://cygwin.com/setup-x86_64.exe[64位]。 请注意,您可以从32位或64位Cygwin编译32位或64位Julia。 64位Cygwin有一个稍小但通常更最新的软件包选择。 Advanced:您可以通过运行跳过步骤2-4:
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
更换 <url> 与来自https://cygwin.com/mirrors.html 或者首先手动运行安装程序并选择镜像。
-
选择要从中下载的安装位置和镜像。
-
在_Select Packages_步骤中,选择以下内容:
-
从_Devel_类别:
cmake的,通过:c[gcc-g++],git的,使,补丁 -
从_Net_类别:
卷曲,卷曲 -
来自_Interpreters_(或_Python_)类别:
m4,毕达哥拉斯 -
从_Archive_类别:
p7zip的 -
对于32位Julia,也来自_Devel_类别:
通过:c[mingw64-i686-gcc-g++]和mingw64-i686-gcc-fortran -
对于64位Julia,也来自_Devel_类别:
通过:c[mingw64-x86_64-gcc-g++]和mingw64-x86_64-gcc-fortran -
允许Cygwin安装完成,然后分别从安装的快捷方式_'Cygwin Terminal'或'Cygwin64Terminal'_开始。
-
从源代码构建Julia及其依赖项:
-
获取朱莉娅的消息来源
```sh git克隆https://github.com/JuliaLang/julia.git cd朱莉娅 ``` 提示:如果你得到一个 `错误:无法fork()获取包:资源暂时不可用` 从git中,添加 `alias git="env PATH=/usr/bin git"` 到 `~/.巴什克` 并重新启动Cygwin。
-
设置
XC_主机变量在做吧。用户以表示MinGW-w64交叉编译```sh echo'XC_HOST=i686-w64-mingw32'>制作。32位Julia的用户# #或 echo'XC_HOST=x86_64-w64-mingw32'>制作。64位Julia的用户# ```
-
开始构建
```sh make-j4#调整线程数(4)以匹配您的构建环境。 make-j4debug#这构建了julia-debug。exe文件 ```
-
直接使用Julia可执行文件运行Julia
usr/bin/julia.exe
usr/bin/julia-debug.exe
|
专业提示:建立两者! `sh |
使O=julia-win32配置
使O=julia-win64配置
echo'XC_HOST=i686-w64-mingw32'>julia-win32/Make。用户
echo'XC_HOST=x86_64-w64-mingw32'>julia-win64/Make。用户
回声'ifeq(stem:[(BUILDROOT),](朱利亚霍姆))
$(错误"树内构建禁用")
endif'>>制作。用户
make-C julia-win32#build for Windows x86in julia-win32folder
make-C julia-win64#build for Windows x86-64in julia-win64folder
`
使用MinGW/MSYS2编译
MSYS2是Windows的软件分发和构建环境。
注意:MSYS2需要*64位*Windows7或更高版本。
-
安装和配置MSYS2。
-
下载并运行最新的安装程序https://github.com/msys2/msys2-installer/releases/latest[64位]分布。 安装程序的名称如下
msys2-x86_64-yyyymmdd。exe文件. -
打开MSYS2外壳。 更新包数据库和基本包:
pacman-Syu -
退出并重新启动MSYS2。 更新其余的基本包:
pacman-Syu -
然后安装构建julia所需的工具:
pacman-s cmake diffutils git m4make 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外壳。 -
使用预构建依赖项构建Julia及其依赖项。
-
打开一个新的https://www.msys2.org/docs/environments/#overview[*MINGW64/MINGW32壳*]。 目前我们不能同时使用mingw32和mingw64,所以如果你想构建x86_64和i686版本,你需要在每个环境中分别构建它们。
-
克隆Julia源:
git克隆https://github.com/JuliaLang/julia.git cd朱莉娅 -
开始构建
make-j$(nproc)
|
专业提示:在dir中构建 `sh |
使O=julia-mingw-w64配置
回声'ifeq(stem:[(BUILDROOT),](朱利亚霍姆))
$(错误"树内构建禁用")
endif'>>制作。用户
make-c朱莉娅-mingw-w64
`
Unix交叉编译(Linux/Mac/WSL)
您还可以使用MinGW-w64交叉编译器从Linux,Mac或Windows子系统For Linux(WSL)构建Windows版本的Julia。
首先,您需要确保您的系统具有所需的依赖项。 我们需要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(现在https://www.xquartz.org/[XQuartz]),以及https://www.macports.org/install.php[MacPorts]或https://brew.sh/[Homebrew].然后运行 端口安装wine wget mingw-w64,或 brew install wine wget mingw-w64,视情况而定。
*然后运行构建:*
-
git克隆https://github.com/JuliaLang/julia.git 朱莉娅-win32 -
cd朱莉娅-win32 -
回声复盖XC_HOST=i686-w64-mingw32>>制作。用户 -
使 -
额外赢取(运行前必须制作二进制区) -
制作二进制区然后制作exe创建Windows安装程序。 -
移动
朱莉娅-*。exe文件目标计算机的安装程序
如果您正在构建64位Windows,则步骤基本上是相同的。 只需更换 i686 在 XC_主机 与 x86_64. (注意:在Mac上,wine仅在32位模式下运行)。
在wine下调试交叉编译的构建
在交叉编译主机上调试交叉编译版本的Julia的最有效方法是安装Windows版本的GDB并像往常一样在wine下运行它。 可用的预建软件包https://packages.msys2.org/[作为MSYS2项目的一部分]已知工作。 除了GDB包,您可能还需要python和termcap包。 最后,从命令行启动时,GDB的提示符可能不起作用。 这可以通过预先解决 [医]酒瓶 到常规的GDB调用。
编译后
使用上面的一个选项编译会创建一个基本的Julia构建,但如果运行完整的Julia二进制安装程序,则不会包含一些额外的组件。 如果您需要这些组件,获取它们的最简单方法是使用以下方法自行构建安装程序 额外赢取 其次是 制作二进制区 和 制作exe. 然后运行生成的安装程序。
Windows构建调试
GDB与Cygwin mintty挂起
*改为在Windows控制台(cmd)下运行GDB。 GDB,GDB 可能无法正常工作在mintty下与非Cygwin应用程序。 您可以使用 cmd/c启动 如有必要,从minty启动Windows控制台。
GDB没有附加到正确的进程
*使用WINDOWS任务管理器中的PID或 温皮德 从 ps 命令而不是unix风格的命令行工具的PID(例如 [医]白鹭). 如果在Windows任务管理器中默认未显示PID列,则可能需要添加PID列。
GDB没有显示正确的后退
*当附加到julia进程时,GDB可能没有附加到正确的线程。 使用方法 信息线程 命令来显示所有的线程和 线程<线程> 来切换线程。
*请务必使用32位版本的GDB调试Julia的32位版本,或使用64位版本的GDB调试Julia的64位版本。
构建过程很慢/吃内存/挂起我的电脑
*禁用Windows Superfetch和https://blogs.msdn.com/b/cjacks/archive/2011/11/22/managing-the-windows-7-program-compatibility-assistant-pca.aspx[程序兼容性助手]服务,因为它们已知有https://cygwin.com/ml/cygwin/2011-12/msg00058.html[虚假的相互作用]与MinGW/Cygwin。
如上链接所述: svchost的 具体可以通过点击高内存在任务管理器中进行调查 svchost的。exe文件 处理及选择 前往服务. 逐个禁用儿童服务,直到找到罪魁祸首。
*谨防https://cygwin.com/faq/faq.html#faq.using.bloda[布罗达]vmmap工具对于识别此类软件冲突是必不可少的。 使用vmmap检查用于驱动构建的bash、mintty或其他持久进程的已加载Dll列表。 本质上_any_DLL在Windows系统目录之外是潜在的BLODA。