Windows on Snapdragon 使用指南(3)
2.4 使用 clang++ 和 GNU make 构建应用程序
对于使用 Windows x86 主机架构的开发人员来说,构建应用程序的另一个选项是在命令提示符中。
您可以选择安装 Snapdragon LLVM ARM 工具链或安装 LLVM 编译器工具。
注意:C# 代码可以构建为 ARM64,但不能构建为 ARM64EC。
安装 Snapdragon LLVM ARM 工具链
确保您已安装Qualcomm® Package Manager 3。安装 Snapdragon LLVM ARM 工具链需要包管理器。
- 使用Qualcomm® Package Manager - Windows安装Snapdragon LLVM ARM 工具链,其中包含最新版本的 Snapdragon LLVM ARM 工具链。
笔记
如果尚未安装,系统将提示您安装Qualcomm® Package Manager 3。
-
使用以下选项之一设置路径。
- 在运行命令之前在命令行终端中make:
- 通过编辑系统环境变量,将路径C:\Qualcomm\SnapdragonLLVMARM\16.1.0.0\bin添加到 Windows PATH环境中。
a. 在系统属性中,单击环境变量。
b. 选择Path变量并单击编辑。
c. 单击“新建”,添加路径 C:\Qualcomm\SnapdragonLLVMARM\16.1.0.0\bin,然后单击 “确定”。
安装LLVM编译器工具
-
从https://www.mingw-w64.org/downloads/#llvm-mingw安装并配置 LLVM 编译器工具并将其解压缩到 C:\Program Files\llvm-mingw-ucrt\
- 对于 Snapdragon 计算机上的 Windows,请下载 llvm-mingw-<日期>-ucrt-aarch64.zip
- 对于 x86 计算机,请下载 llvm-mingw-<日期>-ucrt-x86_64.zip
-
在运行make命令之前在命令行终端中设置路径,以便可以链接.dll 。如果您的文件所在位置与步骤 1 不同,请务必使用特定于您的计算机的文件路径。
set PATH=C:\Program Files\llvm-mingw-ucrt\bin;%PATH%;
或者通过编辑系统环境变量将路径C:\Program Files\llvm-mingw-ucrt\bin添加到 Windows PATH环境中。
-
将C:\Program Files\llvm-mingw-ucrt\bin下的mingw32-make.exe重命名为make.exe。
构建一个HelloWorld项目
-
在c:\Users\source\repos\HelloWorld\HelloWorld文件夹中创建一个简单的helloworld.cpp项目。
c:\Users\source\repos\HelloWorld\HelloWorld\helloworld.cpp
-
Makefile在 c:\Users\source\repos\HelloWorld\HelloWorld文件夹中创建一个名为的 Makefile 。
-
X64:以下 Makefile 将代码编译为 X64 二进制文件 ```c HelloWorld.exe: HelloWorld.cpp clang++ HelloWorld.cpp -o HelloWorld.exe ``` 确保其clang++前面有一个制表符。
-
ARM64:以下 Makefile 将代码编译为 ARM64 二进制文件:
```c HelloWorld.exe: HelloWorld.cpp clang++ --target=aarch64-w64-mingw32 HelloWorld.cpp -o HelloWorld.exe ``` 确保其clang++前面有一个制表符。
-
-
在HelloWorld文件夹中运行make命令来编译helloworld.cpp。
根据所使用的 Makefile,在HelloWorldmake文件夹中的命令提示符中运行命令后,您应该在命令提示符中看到以下内容之一:C:\Users\%UserProfile%\source\repos\HelloWorld\HelloWorld>make clang++ --target=aarch64-w64-mingw32 HelloWorld.cpp -o HelloWorld.exe
或者
C:\Users\%UserProfile%\source\repos\HelloWorld\HelloWorld>make clang++ HelloWorld.cpp -o HelloWorld.exe
HelloWorld.exe在HelloWorld文件夹中生成 。
2.5 使用 clang++ 和 CMake 构建应用程序
CMake ( cmake.exe ) 是一个跨平台的开源工具,用于定义在多个平台上运行的构建过程。适用于 Windows 的 C++ CMake 工具随 Visual Studio 2022 一起安装,作为使用 C++ 的桌面开发和使用 C++ 的 Linux 开发工作负载的一部分,这是跨平台开发所需的。要确认您的计算机上是否已安装 CMake,请cmake -version在计算机上的终端中运行该命令。如果安装了CMake,则在命令提示符中输出版本,您可以跳过以下步骤安装CMake,并转到创建CMakeLists.txt文件和构建目录。
从 GitHub 安装 CMake
- 下载cmake-3.25.1-windows-x86_64.msi并保存到C:\Programs\cmake\或选择的位置。
- 运行cmake-3.25.1-windows-x86_64.msi完成安装。
- 将C:\Programs\cmake\bin添加到 Windows PATH环境中。
创建 CMakeLists.txt 文件和构建目录
-
在c:\Users\source\repos\HelloWorld\HelloWorld文件夹中创建一个简单的helloworld.cpp项目。
-
添加包含以下内容的CMakeLists.txt文件:
project(helloworld) cmake_minimum_required(VERSION 3.10) add_executable(helloworld helloworld.cpp)
-
在与helloworld.c相同的位置打开命令提示符,然后运行以下命令以在与helloworld.c源文件相同的位置创建构建目录:
C:\ ..\source\repos\helloworld\helloworld>mkdir build C:\ ..\source\repos\helloworld\helloworld> cd build
为 ARM64 构建
-
-A ARM64 cmake 参数将代码交叉编译为 ARM64 二进制文件。
C:\...HelloWorld\build> cmake ../ -G "Visual Studio 17 2022" -A ARM64
-
使用cmake --build <dir>命令来构建应用程序。
C:\ ..\source\repos\helloworld\helloworld\build> cmake --build ./ --config Release
-
在build\Release\helloworld.exe中查找输出。
为 ARM64EC 构建
注意:C# 代码可以构建为 ARM64,但不能构建为 ARM64EC。
-
-A ARM64EC cmake 参数将代码交叉编译为 ARM64EC 二进制文件。
C:\...HelloWorld\build> cmake ../ -G "Visual Studio 17 2022" -A ARM64EC
-
使用cmake --build <dir>命令来构建应用程序。
C:\ ..\source\repos\helloworld\helloworld\build> cmake --build .\ --config Release
-
在build\Debug\helloworld.exe中查找输出。