AnyMath 文档

窗户

此文件描述了如何在Windows上安装、构建和使用Julia。

有关Julia的更多一般信息,请参阅https://github.com/JuliaLang/julia/blob/master/README.md[主要自述]或https://docs.julialang.org[文件]。

视窗一般资料

我们强烈建议使用现代终端应用程序运行Julia,特别是Windows终端,它可以从https://aka.ms/terminal[微软商店]。

行结尾

Julia只使用二进制模式文件。 与许多其他Windows程序不同,如果您编写 \n 到一个文件,你会得到一个 \n 在文件中,而不是其他一些位模式。 这与其他操作系统表现出的行为相匹配。 如果您已经安装了Windows版Git,建议您将系统Git配置为使用相同的约定,但不是必需的:

git config --global core.eol lf
git config --global core.autocrlf input

或编辑 %USERPROFILE%\。[医]吉特康菲格 并添加/编辑行:

[core]
    eol = lf
    autocrlf = input

二元分布

有关windows上的二进制分发安装说明,请参阅https://julialang.org/downloads/platform/#windows。但请注意,在所有平台上https://julialang.org/install/[使用 朱莉亚普]建议不要手动安装二进制文件。

来源分布

Cygwin-to-MinGW交叉编译

在Windows上从源代码编译Julia的推荐方法是从https://www.cygwin.com[Cygwin],使用通过Cygwin的包管理器提供的MinGW-w64编译器版本。

  1. 下载并运行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 或者首先手动运行安装程序并选择镜像。

  1. 选择要从中下载的安装位置和镜像。

  2. 在_Select Packages_步骤中,选择以下内容:

  3. 从_Devel_类别: cmake的, 通过:c[gcc-g++], git的, 使, 补丁

  4. 从_Net_类别: 卷曲,卷曲

  5. 来自_Interpreters_(或_Python_)类别: m4, 毕达哥拉斯

  6. 从_Archive_类别: p7zip的

  7. 对于32位Julia,也来自_Devel_类别: 通过:c[mingw64-i686-gcc-g++]mingw64-i686-gcc-fortran

  8. 对于64位Julia,也来自_Devel_类别: 通过:c[mingw64-x86_64-gcc-g++]mingw64-x86_64-gcc-fortran

  9. 允许Cygwin安装完成,然后分别从安装的快捷方式_'Cygwin Terminal''Cygwin64Terminal'_开始。

  10. 从源代码构建Julia及其依赖项:

  11. 获取朱莉娅的消息来源

```sh
git克隆https://github.com/JuliaLang/julia.git
cd朱莉娅
```

提示:如果你得到一个 `错误:无法fork()获取包:资源暂时不可用` 从git中,添加 `alias git="env PATH=/usr/bin git"` 到 `~/.巴什克` 并重新启动Cygwin。
  1. 设置 XC_主机 变量在 做吧。用户 以表示MinGW-w64交叉编译

    ```sh
    echo'XC_HOST=i686-w64-mingw32'>制作。32位Julia的用户#
    #或
    echo'XC_HOST=x86_64-w64-mingw32'>制作。64位Julia的用户#
    ```
  2. 开始构建

    ```sh
    make-j4#调整线程数(4)以匹配您的构建环境。
    make-j4debug#这构建了julia-debug。exe文件
    ```
  3. 直接使用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或更高版本。

  1. 安装和配置MSYS2。

  2. 下载并运行最新的安装程序https://github.com/msys2/msys2-installer/releases/latest[64位]分布。 安装程序的名称如下 msys2-x86_64-yyyymmdd。exe文件.

  3. 打开MSYS2外壳。 更新包数据库和基本包: pacman-Syu

  4. 退出并重新启动MSYS2。 更新其余的基本包: pacman-Syu

  5. 然后安装构建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

  6. MSYS2的配置完成。 现在 出口;出口 的MSYS2外壳。

  7. 使用预构建依赖项构建Julia及其依赖项。

  8. 打开一个新的https://www.msys2.org/docs/environments/#overview[*MINGW64/MINGW32壳*]。 目前我们不能同时使用mingw32和mingw64,所以如果你想构建x86_64和i686版本,你需要在每个环境中分别构建它们。

  9. 克隆Julia源: git克隆https://github.com/JuliaLang/julia.git cd朱莉娅

  10. 开始构建 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,视情况而定。

*然后运行构建:*

  1. git克隆https://github.com/JuliaLang/julia.git 朱莉娅-win32

  2. cd朱莉娅-win32

  3. 回声复盖XC_HOST=i686-w64-mingw32>>制作。用户

  4. 使

  5. 额外赢取 (运行前必须 制作二进制区)

  6. 制作二进制区 然后 制作exe 创建Windows安装程序。

  7. 移动 朱莉娅-*。exe文件 目标计算机的安装程序

如果您正在构建64位Windows,则步骤基本上是相同的。 只需更换 i686XC_主机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。