专栏/【AIHub】【开源项目基础专题】认识Make和Cmake,了解w64devkit

【AIHub】【开源项目基础专题】认识Make和Cmake,了解w64devkit

2024年05月18日 05:56--浏览 · --点赞 · --评论
粉丝:18文章:7

以Make和CMake为主,文尾简介w64devkit

一、简介:

1.make和cmake是C语言中常用编译工具。

2.实际使用时,大多数任务一般二选一使用。但除Windows外,建议两者都安装,以备不时之需。

3.make操作更简单,更方便。cmake可自定义的参数更多,功能更复杂、强大。

4.有部分任务指定使用cmake完成,还有少数任务指定使用make完成。

二、安装:

1、Linux:

(1)一般自带make,部分自带cmake。

(2)可以使用sudo apt list查看是否已安装。

(3)下载:

热身-更新软件包:   sudo apt update

下载make:    sudo apt install make

下载cmake:     sudo apt install cmake

【注】具体代码依据自己使用Linux发行版调整。

2、macOS:

(1)一般自带make,不确定是否自带cmake

(2)安装准备:先安装homebrew:https://brew.sh/

两个选项:

(a)如果代码安装,需要安装开发者工具(自动弹窗提示),然后修改host(先ping一下查地址,ping不到就用185.199.109.133,然后百度host修改方法)

(b)软件包安装,注意安装完成后先重启。少数要重新配置环境变量。无解bug待修复。

(3)安装:brew install cmake

3、Windows安装Cmake:

(1)去官网https://cmake.org/download/,依据自己计算机平台(X86或ARM)下载Windows x64 Installer或Windows ARM64 Installer(注意是msi文件),然后按提示安装、重启。

(2)配置环境变量

<1>右键’计算机(Win7/11)’或’此电脑(Win10)’->属性->(向下翻找到)高级系统设置->环境变量

<2>在系统变量(下面的框)中,找到Path并双击,然后新建,输入cmake所在路径\bin(如我的:C:\data\aihub\env\cmake\bin)

<3>然后点确定->应用,关闭窗口即可。

(3)检验安装完成:

重启后进入CMD或PowerShell,输入cmake -version,返回版本号即证明成功安装。

(4)安装编译器:

<1>电脑空间不足就安装MinGW-w64:

https://github.com/skeeto/w64devkit/releases,选最前面的.zip文件下载解压,建议将解压后的文件夹放到其他位置,

然后按照(2)中步骤将bin目录也加上去,不清楚的话看https://zhuanlan.zhihu.com/p/576408483。

不过有一说一,有时候会出一些bug。

<2>更好的方法是用visual studio:https://visualstudio.microsoft.com/zh-hans/,用community免费版就可以。注意下载完安装器后要进入并选择安装,至少勾选左栏“通用Windows平台开发”和“使用C++的桌面开发”、“使用C++Linux开发”以及右栏“使用C++Linux开发”的“可选”当中的 “用于CMake和Linux的Visual C++工具”,大小不到20GB(需要更多开发环境的话会更大),但是稳定。

(5)开始使用

4、Windows安装make:

(1)先在https://github.com/skeeto/w64devkit/releases/上安装w64devkit,一般选择“w64devkit-版本号.zip”文件就可以,然后解压包文件

(2)运行w64devkit.exe,然后直接打开对应目录,make就可以

三、确定安装成功:

(1)Linux或macOS:在终端中运行make —version或cmake --version,返回版本号即证明安装成功

(2)Windows的cmake:在Windows终端(Windows10/11,不一定自带)或CMD、PowerShell(后两者各版本都有)中运行cmake --version,返回版本号即证明安装成功

(3)Windows的make:在w64devkit.exe中运行make --version,返回版本号即证明安装成功

四、运行方式(以llama.cpp为例):

1、make:

cd data/aihub/ai/llama/llama.cpp #这里指待编译项目目录

(1)release版运行:make 

(2)debug版运行:make LLAMA_DEBUG=1 #“LLAMA”替换为对应项目名称

2、cmake:

cd data/aihub/ai/llama/llama.cpp #这里指待编译项目目录

(1)法一,适用于release版本:

mkdir build

cd ./build

cmake ..

cmake --build . --config Release

(2)法二,适用于release版本,优化、简单:

cmake -B build

cmake --build build --config Release

(3)法三,适用于debug版本、单配置生成器(Single-config generators):

cmake -B build -DCMAKE_BUILD_TYPE=Debug

cmake --build build

解释:

<1>-B build: 指定构建目录(binary directory)的路径为 ./build。如果 build 目录不存在,cmake 会尝试创建它。构建目录通常不包含源代码,但会包含编译生成的文件(如对象文件、可执行文件、库等)。

<2>-DCMAKE_BUILD_TYPE=Debug: 设置 CMake 的构建类型为 Debug。这通常意味着编译器会生成带有调试信息的代码,这样你就可以使用调试器(如 GDB)来调试你的程序。同时,编译器可能会进行较少的优化,以便更容易地跟踪问题。

<3>法三中默认使用的Unix Makefiles生成器不支持多配置(multi-configuration),因此--config标志对于Unix Makefiles生成器来说无意义,即使标注也同样会被忽略。但是多配置生成器(Multi-config generators)中,需要标好—config参数。

(4)法四,适用于debug版本、多配置生成器(Multi-config generators):(以Xcode为例)

cmake -B build -G “Xcode”   #-G参数设置为Xcode或Visual Studio等编译工具

cmake --build build --config Debug

五、w64devkit

1、简介:w64devkit 仅适用于Windows平台,是一个 Dockerfile,它用于从源代码构建一个小的、便携的开发套件,用于在 x64 架构的 Windows 上创建 C 和 C++ 应用程序。也可以在Windows上使用(类似)Unix的命令。

2、其中包含了以下工具:

(1)MinGW-w64 GCC:编译器、链接器和汇编器。这是 GNU Compiler Collection(GCC)的一个版本,专门用于 Windows 平台上的 x86-64 架构。

(2)GDB:调试器。GDB 是 GNU 项目中的调试器,用于在源代码级别调试程序。

(3)GNU Make:标准的构建工具。Make 用于自动化编译、链接等构建过程。

(4)busybox-w32:标准的 Unix 工具集,包括 sh(shell)。BusyBox 是一个单一的可执行文件,它提供了许多 Unix 命令行工具的功能。

(5)Vim:功能强大的文本编辑器。Vim 是一种高效且高度可配置的文本编辑器,尤其适合程序员使用。

(6)Universal Ctags:源代码导航工具。Ctags 用于生成源代码的标签文件,这些文件可以被多种文本编辑器和 IDE 使用,以支持源代码导航。

(7)NASM:x86 汇编器。NASM 是一个为 x86 架构设计的汇编器,支持多种输出格式。

(8)Cppcheck:静态代码分析工具。Cppcheck 是一个用于 C/C++ 代码的静态分析工具,它可以帮助发现代码中的潜在问题。

此外,这个工具链还包括了对 pthreads(POSIX 线程)、C++11 线程和 OpenMP 的支持。所有的运行时组件都是静态的。

3、备注:虽然 Docker/Podman 并不是使用这个开发套件所必需的,但它们提供了一个可靠、干净的环境来构建这个工具套件本身。这意味着你可以使用 Docker 或 Podman 来创建一个隔离的环境,在这个环境中构建和使用 w64devkit,以确保你的构建过程不会受到系统其他部分的影响。

4、安装:

(1)先在https://github.com/skeeto/w64devkit/releases/上安装w64devkit,一般选择“w64devkit-版本号.zip”文件就可以,然后解压包文件

(2)建议将解压后的文件放在其他位置,建议是放在稳定的目录或专门存放开发者工具的文件夹

(3)添加环境变量:set PATH=C:\data\aihub\env\w64devkit\bin;%PATH%

其中“C:\data\aihub\env\w64devkit\”替换为自己存放w64devkit文件夹的目录

5、使用:

(1)快速使用:直接双击4.(1)步骤中解压后文件中的w64devkit.exe,即可使用

(2)稳定使用:执行4中所有步骤,然后打开CMD或Powershell,输入sh -l进入unix交互模式。

6、注意:

w64devkit仅给予unix内核的基础功能,不支持apt、homebrew等给予Linux或macOS的特殊功能。

7、开源项目地址:https://github.com/skeeto/w64devkit/

编辑:AimoneAndex 

由于本人才疏学浅,文章内容可能有不足,如果发现请及时指出,谢谢配合!不定期更新,敬请期待! 有问题可以在评论区留言交流!

我是艾萌,我们下期见!


投诉或建议