首页
关于
友链
留言
统计
Search
1
基于Rocky Linux 8.10系统使用源码搭建LNMP环境,附加安装SQLite
233 阅读
2
阿里云轻量应用服务器图文安装红帽系统RHEL8.10
59 阅读
3
.NET Framework
44 阅读
4
博客测试文章
18 阅读
5
基于LNMP环境搭建Typecho博客
17 阅读
软件整理
C/C++学习笔记
Linux学习笔记
博客搭建
杂项
Search
标签搜索
Nginx
测试
LNMP
Typecho
红帽系统
Alpine Linux
GRUB
windows
PowerShell
MySQL
SQLite
PHP
Rocky Linux
HTTPS
SSL
Let's Encrypt
GDB
hansyee
累计撰写
100
篇文章
累计收到
2
条评论
首页
栏目
软件整理
C/C++学习笔记
Linux学习笔记
博客搭建
杂项
页面
关于
友链
留言
统计
搜索到
5
篇与
的结果
2024-11-09
gdb的简单使用
常用命令 如果希望程序可以调试,在编译时需要加入-g选项,该选项告诉编译器生成调试信息,包括行号、变量名、变量值等;并且不能同时使用-O的优化选项,这可能会改变代码的原始结构和执行流程,进而影响调试。 进入调试的方式: gdb target-program或gdb -q target-program。-q表示不打印gdb版本信息,界面较为干净。 命令 简写 说明 set args 设置程序运行的参数 如需要运行:./demo aa bb cc 则设置方式:set args aa bb cc break b 设置断点 b 20 表示在第20行设置断点,可以设置多个断点 info breakpoints 显示断点 delete breakpoints d 删除断点 d 20 表示删除序号为20的断点,不加序号则删除所有断点 run r 开始/重新运行程序, 程序运行到断点的位置会停下来,如果没有遇到断点,程序一直运行下去 next n 执行当前行语句,如果该语句为函数调用,不会进入函数内部 step s 执行当前行语句,如果该语句为函数调用,则进入函数内部。如果是库函数或者第三方库函数,则进不到函数内部,因为没有源代码,只要有源码的地方都能进去 print p 显示变量或表达式的值,如果是指针变量则显示指针指向的变量的地址。 如果p后面是表达式,会执行这个表达式。还可以作为变量的赋值语句来用 continue c 继续运行程序,遇到下一个断点停止,如果没有遇到断点,程序将一直运行 set var 设置变量的值 存在变量 int i; char name[21]; 设置值 set var i = 10086 set var name = "JacksonWang" quit q 退出gdb start 单步执行,运行程序,并停留在第一个执行语句 finish 在进入到函数内部的情况下,结束当前函数,回到函数调用点 backtrace bt 查函数调用堆栈 until 当你厌倦了在一个循环体内单步跟踪时,这个命令可以运行程序直到退出循环体。 until 行号:运行至某行,不仅仅用来跳出循环 b 23 if a>b 条件断点设置, if后面跟着条件 示例 源码 #include <iostream> #include <string> using namespace std; void func(int i, string &s) { cout << "i = " << i << " s = " << s << endl; } int main(int argc, char *argv[]) { if (argc != 3) { cout << "执行方式:test 编号 姓名" << endl; cout << "如:test 100 张三" << endl; return -1; } int i = stoi(argv[1]); string s = argv[2]; func(i, s); func(i, s); for (auto i = 0; i < 10; ++i) { string s = "第" + to_string(i)+ "个编号"; cout << s << endl; } return 0; } 调试过程 [devuser@Rocky8-online gdb调试]$ gdb test GNU gdb (GDB) Rocky Linux 8.2-20.el8.0.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: --Type <RET> for more, q to quit, c to continue without paging-- <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from test...done. (gdb) set args 100 张三 (gdb) b 23 Breakpoint 1 at 0x4018aa: file main.cpp, line 23. (gdb) b 25 Breakpoint 2 at 0x4018be: file main.cpp, line 25. (gdb) b 27 Breakpoint 3 at 0x4018d2: file main.cpp, line 27. (gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y 0x00000000004018aa in main(int, char**) at main.cpp:23 2 breakpoint keep y 0x00000000004018be in main(int, char**) at main.cpp:25 3 breakpoint keep y 0x00000000004018d2 in main(int, char**) at main.cpp:27 (gdb) d 27 No breakpoint number 27. (gdb) d 3 (gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y 0x00000000004018aa in main(int, char**) at main.cpp:23 2 breakpoint keep y 0x00000000004018be in main(int, char**) at main.cpp:25 (gdb) r Starting program: /home/devuser/workspace/c_c++/test/gdb调试/test 100 张三 Breakpoint 1, main (argc=3, argv=0x7fffffffded8) at main.cpp:23 23 func(i, s); Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-251.el8_10.2.x86_64 libgcc-8.5.0-22.el8_10.x86_64 libstdc++-8.5.0-22.el8_10.x86_64 (gdb) n i = 100 s = 张三 Breakpoint 2, main (argc=3, argv=0x7fffffffded8) at main.cpp:25 25 func(i, s); (gdb) p i $1 = 100 (gdb) p s $2 = "张三" (gdb) set var i = 200 (gdb) s func (i=200, s="张三") at main.cpp:8 8 cout << "i = " << i << " s = " << s << endl; (gdb) n i = 200 s = 张三 9 } (gdb) n main (argc=3, argv=0x7fffffffded8) at main.cpp:27 27 for (auto i = 0; i < 10; ++i) (gdb) n 29 string s = "第" + to_string(i)+ "个编号"; (gdb) n 30 cout << s << endl; (gdb) n 第0个编号 29 string s = "第" + to_string(i)+ "个编号"; (gdb) n 27 for (auto i = 0; i < 10; ++i) (gdb) n 29 string s = "第" + to_string(i)+ "个编号"; (gdb) n 30 cout << s << endl; (gdb) n 第1个编号 29 string s = "第" + to_string(i)+ "个编号"; (gdb) n 27 for (auto i = 0; i < 10; ++i) (gdb) n 29 string s = "第" + to_string(i)+ "个编号"; (gdb) n 30 cout << s << endl; (gdb) n 第2个编号 29 string s = "第" + to_string(i)+ "个编号"; (gdb) n 27 for (auto i = 0; i < 10; ++i) (gdb) n 29 string s = "第" + to_string(i)+ "个编号"; (gdb) n 30 cout << s << endl; (gdb) n 第3个编号 29 string s = "第" + to_string(i)+ "个编号"; (gdb) until 27 for (auto i = 0; i < 10; ++i) (gdb) 第4个编号 第5个编号 第6个编号 第7个编号 第8个编号 第9个编号 33 return 0; (gdb) q A debugging session is active. Inferior 1 [process 1959176] will be killed. Quit anyway? (y or n) y [devuser@Rocky8-online gdb调试]$ 调试core文件 如果程序在运行时发生了内存错误,会被内核强行终止,提示“段错误”,内存的状态可保存在core文件中,方便进一步分析查找问题。 注:默认情况下,不会生成core文件,需要修改系统参数。 调试方式如下: 首先使用ulimit -a查看系统限制参数 [devuser@Rocky8-online gdb调试]$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 6955 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 262144 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 6955 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 使用ulimit -c unlimited把core file size改为unlimited 运行程序,产生core文件 运行gdb target-program core-file 在gdb中,使用bt查看函数调用栈 示例 源码 #include <iostream> #include <string> #include <cstring> using namespace std; void func(int i, string &s) { cout << "i = " << i << " s = " << s << endl; } void corefunc() { char *p = nullptr; *p = 'A'; strcpy(p, "cplusplus"); cout << "p = " << p << endl; } int main(int argc, char *argv[]) { if (argc != 3) { cout << "执行方式:test 编号 姓名" << endl; cout << "如:test 100 张三" << endl; return -1; } int i = stoi(argv[1]); string s = argv[2]; func(i, s); func(i, s); corefunc(); for (auto i = 0; i < 10; ++i) { string s = "第" + to_string(i)+ "个编号"; cout << s << endl; } return 0; } 调试过程 使用systemd的系统不会直接产生core文件,可按如下方法使用coredumpctl命令生成 [devuser@Rocky8-online gdb调试]$ cat /proc/sys/kernel/core_pattern |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e [devuser@Rocky8-online gdb调试]$ coredumpctl TIME PID UID GID SIG COREFILE EXE Sat 2024-11-09 16:12:16 CST 1959992 1000 1000 11 present /home/devuser/workspace/c_c++/test/gdb调试/test Sat 2024-11-09 16:16:17 CST 1960127 1000 1000 11 present /home/devuser/workspace/c_c++/test/gdb调试/test Sat 2024-11-09 16:22:23 CST 1960569 1000 1000 11 present /home/devuser/workspace/c_c++/test/gdb调试/test [devuser@Rocky8-online gdb调试]$ coredumpctl -o core dump 1960569 PID: 1960569 (test) UID: 1000 (devuser) GID: 1000 (devuser) Signal: 11 (SEGV) Timestamp: Sat 2024-11-09 16:22:23 CST (7min ago) Command Line: ./test 100 Executable: /home/devuser/workspace/c_c++/test/gdb调试/test Control Group: /user.slice/user-1000.slice/session-727.scope Unit: session-727.scope Slice: user-1000.slice Session: 727 Owner UID: 1000 (devuser) Boot ID: 3715d4f161824bbf9481b064cc42f893 Machine ID: 74da068e81f448da853c64463d64e826 Hostname: Rocky8-online Storage: /var/lib/systemd/coredump/core.test.1000.3715d4f161824bbf9481b064cc42f893.1960569.1731140543000000.lz4 Message: Process 1960569 (test) of user 1000 dumped core. Stack trace of thread 1960569: #0 0x00000000004017b7 n/a (/home/devuser/workspace/c_c++/test/gdb调试/test) #1 0x0000000000401936 n/a (/home/devuser/workspace/c_c++/test/gdb调试/test) #2 0x00007f182025d7e5 __libc_start_main (libc.so.6) #3 0x000000000040168e n/a (/home/devuser/workspace/c_c++/test/gdb调试/test) [devuser@Rocky8-online gdb调试]$ ls -l total 704 -rw-rw-r--. 1 devuser devuser 499712 Nov 9 16:29 core drwxrwxr-x. 2 devuser devuser 6 Nov 9 15:12 include drwxrwxr-x. 2 devuser devuser 6 Nov 9 15:12 lib -rw-rw-r--. 1 devuser devuser 724 Nov 9 16:11 main.cpp -rw-rw-r--. 1 devuser devuser 117328 Nov 9 16:12 main.o -rw-rw-r--. 1 devuser devuser 1428 Nov 9 15:43 Makefile -rwxrwxr-x. 1 devuser devuser 92672 Nov 9 16:12 test [devuser@Rocky8-online gdb调试]$ gdb test core GNU gdb (GDB) Rocky Linux 8.2-20.el8.0.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: --Type <RET> for more, q to quit, c to continue without paging-- <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from test...done. [New LWP 1960569] Core was generated by `./test 100 张三'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00000000004017b7 in corefunc () at main.cpp:15 15 *p = 'A'; Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-251.el8_10.2.x86_64 libgcc-8.5.0-22.el8_10.x86_64 libstdc++-8.5.0-22.el8_10.x86_64 (gdb) bt #0 0x00000000004017b7 in corefunc () at main.cpp:15 #1 0x0000000000401936 in main (argc=3, argv=0x7fff0d021a78) at main.cpp:36 (gdb) 调试正在运行中的程序 gdb target-program -p pid 示例 源码 #include <iostream> #include <chrono> #include <thread> using namespace std; int main(int argc, char *argv[]) { for (auto i = 0; i < 1000000; ++i) { string s = "第" + to_string(i)+ "个编号"; cout << s << endl; std::this_thread::sleep_for(std::chrono::seconds(5)); } return 0; } 调试过程 [devuser@Rocky8-online gdb调试]$ ps -ef | grep test devuser 1954586 1952692 0 13:35 pts/0 00:00:00 gdb test devuser 1962014 1954938 0 19:00 pts/1 00:00:00 ./test devuser 1962280 1962066 0 19:01 pts/2 00:00:00 grep --color=auto test [devuser@Rocky8-online gdb调试]$ gdb test -p 1962014 GNU gdb (GDB) Rocky Linux 8.2-20.el8.0.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: --Type <RET> for more, q to quit, c to continue without paging-- <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from test...done. Attaching to program: /home/devuser/workspace/c_c++/test/gdb调试/test, process 1962014 Reading symbols from /lib64/libstdc++.so.6...Reading symbols from .gnu_debugdata for /lib64/libstdc++.so.6...(no debugging symbols found)...done. (no debugging symbols found)...done. Reading symbols from /lib64/libm.so.6...Reading symbols from .gnu_debugdata for /lib64/libm.so.6...(no debugging symbols found)...done. (no debugging symbols found)...done. Reading symbols from /lib64/libgcc_s.so.1...Reading symbols from .gnu_debugdata for /lib64/libgcc_s.so.1...(no debugging symbols found)...done. (no debugging symbols found)...done. Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done. Reading symbols from /lib64/ld-linux-x86-64.so.2...done. 0x00007fdb54a00068 in nanosleep () from /lib64/libc.so.6 Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-251.el8_10.2.x86_64 libgcc-8.5.0-22.el8_10.x86_64 libstdc++-8.5.0-22.el8_10.x86_64 (gdb) n Single stepping until exit from function nanosleep, which has no line number information. std::this_thread::sleep_for<long, std::ratio<1l, 1l> > (__rtime=...) at /usr/include/c++/8/thread:379 379 while (::nanosleep(&__ts, &__ts) == -1 && errno == EINTR) (gdb) n 384 } (gdb) n main (argc=1, argv=0x7ffef61ed998) at main.cpp:11 11 string s = "第" + to_string(i)+ "个编号"; (gdb) n 9 for (auto i = 0; i < 1000000; ++i) (gdb) n 11 string s = "第" + to_string(i)+ "个编号"; (gdb) n 12 cout << s << endl; (gdb) n 13 std::this_thread::sleep_for(std::chrono::seconds(5)); (gdb) n n n 11 string s = "第" + to_string(i)+ "个编号"; (gdb) n 9 for (auto i = 0; i < 1000000; ++i) (gdb) n 11 string s = "第" + to_string(i)+ "个编号"; (gdb) n 12 cout << s << endl; (gdb) n 13 std::this_thread::sleep_for(std::chrono::seconds(5)); (gdb) n n n n n 11 string s = "第" + to_string(i)+ "个编号"; (gdb) n 9 for (auto i = 0; i < 1000000; ++i) (gdb) n 11 string s = "第" + to_string(i)+ "个编号"; (gdb) n 12 cout << s << endl; (gdb) n 13 std::this_thread::sleep_for(std::chrono::seconds(5)); (gdb) c Continuing.
2024年11月09日
1 阅读
0 评论
0 点赞
2024-10-24
C++运算符优先级表
结合律 运算符 功能 用法 举例 左 :: 全局作用域 ::name 左 :: 类作用域 class::name 左 :: 命名空间作用域 namespace::name ———— ——————— —————————— —————————— ———————— 左 . 成员选择 object.member 左 -> 成员选择 pointer->member 左 [] 下标 expr[expr] 左 () 函数调用 name(expr_list) 左 () 类型构造 type(expr_list) ———— ——————— —————————— —————————— ———————— 右 ++ 后置递增运算 lvalue++ 右 -- 后置递减运算 lvalue-- 右 typeid 类型ID typeid(type) 右 typeid 运行时类型ID typeid(expr) 右 static_cast const_cast dynamic_cast reinterpret_cast 类型转换 cast_name<type>(expr) ———— ——————— —————————— —————————— ———————— 右 ++ 前置递增运算 ++lvalue 右 -- 前置递减运算 --lvalue 右 ~ 按位求反 ~expr 右 ! 逻辑非 !expr 右 - 一元负号 -expr 右 + 一元正号 +expr 右 * 解引用 *expr 右 & 取地址 &lvalue 右 () 类型转换 (type)expr 右 sizeof 对象的大小 sizeof expr 右 sizeof 类型的大小 sizeof(type) 右 Sizeof... 参数包的大小 sizeof...(name) 右 new 创建对象 new type 右 new[] 创建数组 new type[size] 右 delete 释放对象 delete expr 右 delete[] 释放数组 delete[] expr 右 noexcept 能否抛出异常 noexcept(expr) ———— ——————— —————————— —————————— ———————— 左 ->* 指向成员选择的指针 ptr->*ptr_to_member 左 .* 指向成员选择的指针 obj.*ptr_to_member ———— ——————— —————————— —————————— ———————— 左 * 乘法 expr * expr 左 / 除法 expr / expr 左 % 取模(取余) expr % expr ———— ——————— —————————— —————————— ———————— 左 + 加法 expr + expr 左 - 减法 expr - expr ———— ——————— —————————— —————————— ———————— 左 << 向左移位 expr << expr 左 >> 向右移位 expr >> expr ———— ——————— —————————— —————————— ———————— 左 < 小于 expr < expr 左 <= 小于等于 expr <= expr 左 > 大于 expr > expr 左 >= 大于等于 expr >= expr ———— ——————— —————————— —————————— ———————— 左 == 相等 expr == expr 左 != 不相等 expr != expr ———— ——————— —————————— —————————— ———————— 左 & 按位与 expr & expr ———— ——————— —————————— —————————— ———————— 左 ^ 位异或 expr ^ expr ———— ——————— —————————— —————————— ———————— 左 | 按位或 expr | expr ———— ——————— —————————— —————————— ———————— 左 && 逻辑与 expr && expr ———— ——————— —————————— —————————— ———————— 左 || 逻辑或 expr || expr ———— ——————— —————————— —————————— ———————— 右 ? : 条件表达式 expr ? expr : expr ———— ——————— —————————— —————————— ———————— 右 = 赋值 lvalue = expr ———— ——————— —————————— —————————— ———————— 右 *=, /=, %= +=, -= <<=, >>= &=, |=, ^= 复合赋值 lvalue += expr等 右 throw 抛出异常 throw expr ———— ——————— —————————— —————————— ———————— 左 , 逗号表达式 expr,expr
2024年10月24日
3 阅读
0 评论
0 点赞
2024-10-16
C++初学-模板编程的实例应用
背景说明 以下程序整理于<<Essential C++>>中的以template进行编程的篇章。主要实现了一个基础的二叉查找树。 类的设计 二叉树包含两个类:一个是 BinaryTree,用于存储一个指针,指向根节点;另一个是 BTnode,用来存储节点值,以及连接左右两个子节点。节点值的类型即为参数化的部分。其中 BinaryTree是提供给客户使用的类,包含以下可用操作:插入元素(insert)、移除元素(remove)、查找元素(find)、清除二叉树(clear)、打印二叉树(前序、中序、后序)。 实现 BinaryTree.h #ifndef BINARYTREE_H_INCLUDED #define BINARYTREE_H_INCLUDED #include <iostream> using uint_t = unsigned int; // 类模板前置声明 template <class elemType> class BinaryTree; template <class valType> class BTnode; template <class valType> class BTnode { friend class BinaryTree<valType>; public: // 普通构造函数,节点值为val BTnode(const valType &val); // 析构函数 ~BTnode(); // 插入一个新节点,节点值为val void insert_value(const valType &val); // 移除一个节点,节点值为val,父节点为prev void remove_value(const valType &val, BTnode * &prev); // 查找一个结点,节点值为val bool find_value(const valType &val) const; // 前序打印:节点本身-左子节点-右子节点 void preorder(BTnode *pt, std::ostream &os) const; // 中序打印:左子节点-节点本身-右子节点 void inorder(BTnode *pt, std::ostream &os) const; // 后序打印:左子节点-右子节点-节点本身 void postorder(BTnode *pt, std::ostream &os) const; // 获取节点值 const valType& value() const { return _val; } // 获取节点值出现次数 uint_t occurs() const { return _cnt; } // 遍历subtree节点下的左子树,将leaf接为最下层的叶子节点 static void lchild_leaf(BTnode *leaf, BTnode *subtree); private: // 拷贝构造函数 BTnode(const BTnode &rhs); // 赋值运算符重载函数 BTnode& operator=(const BTnode &rhs); // 打印节点值 void display_val(BTnode *pt, std::ostream &os) const; private: // 节点值 valType _val; // 节点值出现次数 uint_t _cnt; // 指向左子节点 BTnode *_lchild; // 指向右子节点 BTnode *_rchild; }; template <typename valType> inline BTnode<valType>:: BTnode(const valType& val) : _val(val), _cnt(1), _lchild(nullptr), _rchild(nullptr) { *(BinaryTree<valType>::getOutStream()) << "调用普通构造函数BTnode<valType>::BTnode(const valType& val)" << std::endl; } template <typename valType> inline BTnode<valType>:: BTnode(const BTnode &rhs) : _val(rhs._val), _cnt(1), _lchild(nullptr), _rchild(nullptr) { *(BinaryTree<valType>::getOutStream()) << "调用拷贝构造函数BTnode<valType>::BTnode(const BTnode &rhs)" << std::endl; } template <typename valType> inline BTnode<valType>& BTnode<valType>:: operator=(const BTnode &rhs) { _val = rhs._val; _cnt = 1; _lchild = nullptr; _rchild = nullptr; *(BinaryTree<valType>::getOutStream()) << "调用赋值运算符重载函数BTnode<valType>::BTnode(const BTnode &rhs)" << std::endl; } template <typename valType> inline BTnode<valType>:: ~BTnode() { *(BinaryTree<valType>::getOutStream()) << "调用析构函数BTnode<valType>::~BTnode()" << std::endl; } template <typename valType> void BTnode<valType>:: insert_value(const valType &val) { if (val == _val) { ++_cnt; return; } else if (val < _val) { if (_lchild) _lchild->insert_value(val); else _lchild = new BTnode(val); } else { if (_rchild) _rchild->insert_value(val); else _rchild = new BTnode(val); } } template <typename valType> void BTnode<valType>:: lchild_leaf(BTnode *leaf, BTnode *subtree) { while (subtree->_lchild) subtree = subtree->_lchild; subtree->_lchild = leaf; } template <typename valType> void BTnode<valType>:: remove_value(const valType &val, BTnode * &prev) { // 算法: // 以删除节点的右子节点取代删除节点本身 // 若无右子节点,就以左子节点取代删除节点本身 // 搬移左子节点,使其成为右子节点的左子树的叶节点 if (val == _val) { if (_rchild) { prev = _rchild; if (_lchild) { if (prev->_lchild) BTnode<valType>::lchild_leaf(_lchild, prev->_lchild); else prev->_lchild = _lchild; } } else { prev = _lchild; } delete this; } else if (val < _val) { if (_lchild) _lchild->remove_value(val, _lchild); } else { if (_rchild) _rchild->remove_value(val, _rchild); } } template <typename valType> bool BTnode<valType>:: find_value(const valType &val) const { if (val == _val) { return true; } else if (val < _val) { if (_lchild) return _lchild->find_value(val); else return false; } else { if (_rchild) return _rchild->find_value(val); else return false; } } template <typename valType> void BTnode<valType>:: preorder(BTnode *pt, std::ostream &os) const { if (pt) { // 节点本身-左子节点-右子节点 display_val(pt, os); if (pt->_lchild) preorder(pt->_lchild, os); if (pt->_rchild) preorder(pt->_rchild, os); } } template <typename valType> void BTnode<valType>:: inorder(BTnode *pt, std::ostream &os) const { if (pt) { // 左子节点-节点本身-右子节点 if (pt->_lchild) inorder(pt->_lchild, os); display_val(pt, os); if (pt->_rchild) inorder(pt->_rchild, os); } } template <typename valType> void BTnode<valType>:: postorder(BTnode *pt, std::ostream &os) const { if (pt) { // 左子节点-右子节点-节点本身 if (pt->_lchild) postorder(pt->_lchild, os); if (pt->_rchild) postorder(pt->_rchild, os); display_val(pt, os); } } template <typename valType> void BTnode<valType>:: display_val(BTnode *pt, std::ostream &os) const { if (pt) { os << pt->_val; if (pt->_cnt > 1) os << "(" << pt->_cnt << ") "; else os << ' '; } } template <class elemType> class BinaryTree { public: // 默认构造函数 BinaryTree(); // 拷贝构造函数 BinaryTree(const BinaryTree &rhs); // 赋值运算符重载函数 BinaryTree& operator=(const BinaryTree &rhs); // 析构函数 ~BinaryTree(); // 插入新节点,节点值为elem void insert(const elemType& elem); // 移除节点,节点值为elem void remove(const elemType &elem); // 查找节点是否在二叉树,节点值为val bool find(const elemType &val) const; // 二叉树是否为空 bool empty() { return (nullptr == _root); } // 清除整个二叉树 void clear() { clear(_root); _root = nullptr; } // 前序打印:节点本身-左子节点-右子节点 void preorder(std::ostream &os = *_current_os) const { _root->preorder(_root, os); os << std::endl; } // 中序打印:左子节点-节点本身-右子节点 void inorder(std::ostream &os = *_current_os) const { _root->inorder(_root, os); os << std::endl; } // 后序打印:左子节点-右子节点-节点本身 void postorder(std::ostream &os = *_current_os) const { _root->postorder(_root, os); os << std::endl; } // 获取当前输出流 static std::ostream* getOutStream() { return _current_os; } // 设置当前输出流 static void setOutStream(std::ostream *os) { if (os) _current_os = os; } private: // 将src指向的子树复制到tar指向的子树 void copy(BTnode<elemType> *&tar, const BTnode<elemType> *src); // 清除二叉树 void clear(BTnode<elemType> *pt); // 移除根节点 void remove_root(); private: // 指向二叉树根节点 BTnode<elemType> *_root; // 指向输出流 static std::ostream *_current_os; }; template <typename elemType> inline BinaryTree<elemType>:: BinaryTree() : _root(nullptr) { *_current_os << "调用默认构造函数BinaryTree<elemType>::BinaryTree()" << std::endl; } template <typename elemType> inline BinaryTree<elemType>:: BinaryTree(const BinaryTree &rhs) { copy(_root, rhs._root); *_current_os << "调用拷贝构造函数BinaryTree<elemType>::BinaryTree(const BinaryTree &rhs)" << std::endl; } template <typename elemType> inline BinaryTree<elemType>& BinaryTree<elemType>:: operator=(const BinaryTree &rhs) { if (this != &rhs) { clear(); copy(_root, rhs._root); } *_current_os << "调用赋值运算符重载函数BinaryTree<elemType>::operator=(const BinaryTree &rhs)" << std::endl; return *this; } template <typename elemType> inline BinaryTree<elemType>:: ~BinaryTree() { clear(); *_current_os << "调用析构函数BinaryTree<elemType>::~BinaryTree()" << std::endl; } template <typename elemType> void BinaryTree<elemType>:: insert(const elemType &elem) { if (_root) _root->insert_value(elem); else _root = new BTnode<elemType>(elem); } template <typename elemType> void BinaryTree<elemType>:: remove(const elemType &elem) { if (_root) { if (elem == _root->_val) remove_root(); else _root->remove_value(elem, _root); } } template <typename elemType> bool BinaryTree<elemType>:: find(const elemType &elem) const { if (_root) { return _root->find_value(elem); } else { return false; } } template <typename elemType> void BinaryTree<elemType>:: remove_root() { // 算法: // 以删除节点的右子节点取代删除节点本身 // 若无右子节点,就以左子节点取代删除节点本身 // 搬移左子节点,使其成为右子节点的左子树的叶节点 if (_root) { BTnode<elemType> * const oldroot = _root; if (oldroot->_rchild) { _root = oldroot->_rchild; BTnode<elemType> *oldlc = oldroot->_lchild; BTnode<elemType> *newlc = _root->_lchild; if (oldlc) { if (newlc) BTnode<elemType>::lchild_leaf(oldlc, newlc); else _root->_lchild = oldlc; } } else { _root = oldroot->_lchild; } delete oldroot; } } template <typename elemType> void BinaryTree<elemType>:: clear(BTnode<elemType> *pt) { if (pt) { clear(pt->_lchild); clear(pt->_rchild); delete pt; } } template <typename elemType> void BinaryTree<elemType>:: copy(BTnode<elemType> *&tar, const BTnode<elemType> *src) { if (src) { tar = new BTnode<elemType>(src->val); if (src->_lchild) copy(tar->_lchild, src->_lchild); if (src->_rchild) copy(tar->_rchild, src->_rchild); } } #endif // BINARYTREE_H_INCLUDED main.cpp #include "BinaryTree.h" #include <string> #include <fstream> template<typename elemType> std::ostream *BinaryTree<elemType>::_current_os = &std::cout; const std::string log_file = "logfile.txt"; int main() { std::ofstream log(log_file); if (!log) { std::cerr << "错误:无法打开文件[" << log_file << "]" << std::endl; return -1; } else { BinaryTree<std::string>::setOutStream(&log); } BinaryTree<std::string> bt; if (bt.empty()) { log << "二叉树为空" << std::endl; } else { log << "二叉树不为空" << std::endl; log << "前序: "; bt.preorder(log); log << "中序: "; bt.inorder(log); log << "后序: "; bt.postorder(log); } bt.insert("Piglet"); bt.insert("Eeyore"); bt.insert("Roo"); bt.insert("Tigger"); bt.insert("Chris"); bt.insert("Chris"); bt.insert("Chris"); bt.insert("Pooh"); bt.insert("Kanga"); log << "前序: "; bt.preorder(log); log << "中序: "; bt.inorder(log); log << "后序: "; bt.postorder(log); bt.remove("Piglet"); log << "前序: "; bt.preorder(log); log << "中序: "; bt.inorder(log); log << "后序: "; bt.postorder(log); bt.remove("Roo"); log << "前序: "; bt.preorder(log); log << "中序: "; bt.inorder(log); log << "后序: "; bt.postorder(log); if (bt.find("Kanga")) { log << "存在Kanga" << std::endl; } else { log << "不存在Kanga" << std::endl; } if (bt.find("hsy")) { log << "存在hsy" << std::endl; } else { log << "不存在hsy" << std::endl; } bt.clear(); if (bt.empty()) { log << "二叉树为空" << std::endl; } else { log << "二叉树不为空" << std::endl; bt.preorder(log); bt.inorder(log); bt.postorder(log); } return 0; } 运行结果如下 调用默认构造函数BinaryTree<elemType>::BinaryTree() 二叉树为空 调用普通构造函数BTnode<valType>::BTnode(const valType& val) 调用普通构造函数BTnode<valType>::BTnode(const valType& val) 调用普通构造函数BTnode<valType>::BTnode(const valType& val) 调用普通构造函数BTnode<valType>::BTnode(const valType& val) 调用普通构造函数BTnode<valType>::BTnode(const valType& val) 调用普通构造函数BTnode<valType>::BTnode(const valType& val) 调用普通构造函数BTnode<valType>::BTnode(const valType& val) 前序: Piglet Eeyore Chris(3) Kanga Roo Pooh Tigger 中序: Chris(3) Eeyore Kanga Piglet Pooh Roo Tigger 后序: Chris(3) Kanga Eeyore Pooh Tigger Roo Piglet 调用析构函数BTnode<valType>::~BTnode() 前序: Roo Pooh Eeyore Chris(3) Kanga Tigger 中序: Chris(3) Eeyore Kanga Pooh Roo Tigger 后序: Chris(3) Kanga Eeyore Pooh Tigger Roo 调用析构函数BTnode<valType>::~BTnode() 前序: Tigger Pooh Eeyore Chris(3) Kanga 中序: Chris(3) Eeyore Kanga Pooh Tigger 后序: Chris(3) Kanga Eeyore Pooh Tigger 存在Kanga 不存在hsy 调用析构函数BTnode<valType>::~BTnode() 调用析构函数BTnode<valType>::~BTnode() 调用析构函数BTnode<valType>::~BTnode() 调用析构函数BTnode<valType>::~BTnode() 调用析构函数BTnode<valType>::~BTnode() 二叉树为空 调用析构函数BinaryTree<elemType>::~BinaryTree()
2024年10月16日
1 阅读
0 评论
0 点赞
2024-10-11
C++初学-封装继承多态的实例应用
背景说明 以下程序整理于<<Essential C++>>中的面向对象编程风格的篇章,这个章节中展示的代码在某些地方其实是有问题的,例如有些常成员函数的声明其实是不能声明为常成员函数的,也可能是我理解不到位。不管怎样,本人结合作者的意图对其进行了部分修改做出一个能实际运行的程序就算成功。 类的设计 程序主要功能是计算出斐波那契数列某一位置的元素值,还包括其他一些基本功能,例如返回该数列是哪一种类型(此处只实现了斐波那契数列,实际数列有很多,可做引申)、数列的起始位置、数列的长度、可容纳元素的最大大小、打印数列所有元素。 基类 num_sequence.h #ifndef NUM_SEQUENCE_H_INCLUDED #define NUM_SEQUENCE_H_INCLUDED #include <iostream> #include <vector> #include <typeinfo> // 声明命名空间 namespace mycpp { // C++11支持使用using为类型取别名 // 可取代老式的typedef // typedef unsigned int uint_t; using uint_t = unsigned int; // 常量 const int * const NULLPTR = NULL; // 基类,抽象类(含有纯虚函数) class num_sequence { protected: // 默认构造函数 num_sequence(); // 构造函数 num_sequence(uint_t length, uint_t beg_pos, std::vector<uint_t> &relems); public: // 拷贝构造函数 num_sequence(const num_sequence &rhs); // 赋值运算符重载函数 // 返回引用可使用链式赋值同时避免构造临时对象,减少系统开销 num_sequence& operator=(const num_sequence &rhs); // 析构函数 // 基类的析构函数需要声明为虚函数 // 声明虚函数的目的是告诉编译器在运行时动态的根据基类指针实际指向的对象来执行相应的析构函数 // 未申明为虚函数的话,基类指针无论是否指向派生类,其析构函数都在编译期就被静态解析为基类的析构函数 virtual ~num_sequence(); public: // 返回数列类型名称 // 常成员函数(执行过程中不会改变对象) const char* what_am_i() const; // 返回pos上的元素 uint_t elem(uint_t pos); // 返回数列长度 //常成员函数(执行过程中不会改变对象) uint_t length() const; // 返回数列起始位置值 // 常成员函数(执行过程中不会改变对象) uint_t beg_pos() const; // 返回数列所支持的最大位置值 // 静态成员函数(所有类共享一份,并不专属于哪个类的对象) static uint_t max_elems(); // 将所有元素输出到os // 函数默认参数,默认为标准输出 // 返回引用可使用链式输出同时避免构造临时对象,减少系统开销 std::ostream& print(std::ostream &os = std::cout) const; protected: // 产生直到pos位置的元素 // 纯虚函数,基类没有实现的必要,仅提供接口,依赖派生类来实现 virtual void gen_elems(uint_t pos) = 0; // 检查pos位置是否为有效位置 bool check_integrity(uint_t pos); protected: // 数列长度 uint_t _length; // 数列起始位置,从1开始计数 uint_t _beg_pos; // 元素最大个数 // 静态成员、常量 // C++11支持常量表达式 static constexpr uint_t _max_elems = 1024; // 数列派生类的容器的引用 std::vector<uint_t> &_relems; }; // 内联函数(建议编译器在函数调用处直接展开,减少函数调用开销) inline uint_t num_sequence::length() const { return _length; } inline uint_t num_sequence::beg_pos() const { return _beg_pos; } inline uint_t num_sequence::max_elems() { return _max_elems; } inline std::ostream& operator<<(std::ostream &os, const num_sequence &ns) { return ns.print(os); } } // namespace mycpp #endif // NUM_SEQUENCE_H_INCLUDED num_sequence.cpp #include "num_sequence.h" // 使用命名空间 // using namespace mycpp; // 全局作用域 using mycpp::num_sequence; // 单个指定 using mycpp::uint_t; // 单个指定 // 构造函数使用初始化列表 // 这里_relems强行绑定了一个空对象,无实际意义,仅演示默认构造函数 // 1.无参的构造函数 // 2.全部参数都有默认参数的构造函数 // 3.未实现自定义构造函数时编译器会自动生成默认构造函数 num_sequence::num_sequence() : _length(1), _beg_pos(1), _relems((std::vector<uint_t>&)(*NULLPTR)) { std::cout << "调用构造函数num_sequence::num_sequence()" << std::endl; } // 构造函数使用初始化列表 num_sequence::num_sequence(uint_t length, uint_t beg_pos, std::vector<uint_t> &relems) : _length(length), _beg_pos(beg_pos), _relems(relems) { std::cout << "调用构造函数num_sequence::num_sequence(uint_t length, uint_t beg_pos, std::vector<uint_t> &relems)" << std::endl; } // 构造函数使用初始化列表 //num_sequence::num_sequence(const num_sequence &rhs) : // _length(rhs.length), // _beg_pos(rhs.beg_pos), // _relems(rhs.relems) // C++11支持构造函数使用委托构造 num_sequence::num_sequence(const num_sequence &rhs) : num_sequence(rhs._length, rhs._beg_pos, rhs._relems) { std::cout << "调用拷贝构造函数num_sequence::num_sequence(const num_sequence &rhs)" << std::endl; } num_sequence& num_sequence::operator=(const num_sequence &rhs) { if (this != &rhs) // 避免自我赋值 { _length = rhs._length; _beg_pos = rhs._beg_pos; _relems = rhs._relems; } std::cout << "调用赋值运算符重载函数num_sequence::operator=(const num_sequence &rhs)" << std::endl; return *this; } num_sequence::~num_sequence() { std::cout << "调用析构函数num_sequence::~num_sequence()" << std::endl; } const char* num_sequence::what_am_i() const { // typeid运算符允许在运行时确定对象的类型,可用来确定是基类还是派生类 // typeid运算符的返回值类型为const type_info& return typeid(*this).name(); } uint_t num_sequence::elem(uint_t pos) { if (!check_integrity(pos)) { return 0; } return _relems[(_beg_pos - 1) + (pos - 1)]; } std::ostream& num_sequence::print(std::ostream &os) const { os << "当前的数列元素:"; if (_relems.size()) { for (uint_t i = _beg_pos - 1; i < _beg_pos + _length - 1; i++) { os << _relems[i] << ' '; } } os << std::endl; return os; } bool num_sequence::check_integrity(uint_t pos) { if (pos <= 0 || pos > _max_elems) { std::cerr << "无效的位置:" << pos << "无法处理请求" << std::endl; return false; } if (pos > _relems.size()) { gen_elems(pos); } return true; } 派生类 fibonacci.h #ifndef FIBONACCI_H_INCLUDED #define FIBONACCI_H_INCLUDED #include "num_sequence.h" // 声明命名空间 namespace mycpp { // 派生类 class Fibonacci : public num_sequence { public: // 默认构造函数 // 无参或所有参数都有默认参数的构造函数 Fibonacci(uint_t length = 1, uint_t beg_pos = 1); // 拷贝构造函数 Fibonacci(const Fibonacci &rhs); // 赋值运算符重载函数 // 返回引用可使用链式赋值同时避免构造临时对象,减少系统开销 Fibonacci& operator=(const Fibonacci &rhs); // 析构函数 ~Fibonacci(); protected: // 产生直到pos位置的元素 // C++11支持使用override说明符指明该虚函数重写基类的虚函数 virtual void gen_elems(uint_t pos) override; protected: // 数列容器 // 静态成员变量(此处是声明,需要在类外定义) static std::vector<uint_t> _elems; }; // 内联函数(建议编译器在函数调用处直接展开,减少函数调用开销) // 构造函数使用初始化列表 // 此处使用基类的构造函数并不是委托构造 inline Fibonacci::Fibonacci(uint_t length, uint_t beg_pos) : num_sequence(length, beg_pos, _elems) { std::cout << "调用构造函数Fibonacci::Fibonacci(uint_t length, uint_t beg_pos)" << std::endl; } inline Fibonacci::Fibonacci(const Fibonacci &rhs) : num_sequence(rhs) { std::cout << "调用拷贝构造函数Fibonacci::Fibonacci(const Fibonacci &rhs)" << std::endl; } inline Fibonacci& Fibonacci::operator=(const Fibonacci &rhs) { if (this != &rhs) // 避免自我赋值 { // 明确调用基类的拷贝赋值函数 num_sequence::operator=(rhs); } std::cout << "调用赋值运算符重载函数Fibonacci& Fibonacci::operator=(const Fibonacci &rhs)" << std::endl; return *this; } inline Fibonacci::~Fibonacci() { std::cout << "调用析构函数Fibonacci::~Fibonacci()" << std::endl; } } // namespace mycpp #endif // FIBONACCI_H_INCLUDED fibonacci.cpp #include "fibonacci.h" // 使用命名空间 // using namespace mycpp; // 全局作用域 using mycpp::num_sequence; // 单个指定 using mycpp::Fibonacci; // 单个指定 using mycpp::uint_t; // 单个指定 std::vector<uint_t> Fibonacci::_elems; void Fibonacci::gen_elems(uint_t pos) { // 首次生成数列元素 // 从_beg_pos开始的_length个数列元素 if (_elems.empty()) { _elems.push_back(1); _elems.push_back(1); uint_t end = _beg_pos + _length; uint_t i_2 = _elems[0]; uint_t i_1 = _elems[1]; for (uint_t i = 2 ; i < end; ++i) { uint_t elem = i_2 + i_1; _elems.push_back(elem); i_2 = i_1; i_1 = elem; } } // 继续生成不足pos位置的数列元素 if (_elems.size() < pos + _beg_pos) { uint_t end = _elems.size(); uint_t i_2 = _elems[end - 2]; uint_t i_1 = _elems[end - 1]; for (; end < pos + _beg_pos; ++end) { uint_t elem = i_2 + i_1; _elems.push_back(elem); _length++; i_2 = i_1; i_1 = elem; } } } 测试程序 main.cpp #include <iostream> #include "fibonacci.h" using namespace mycpp; int main() { std::cout << "sizeof(num_sequence)=" << sizeof(num_sequence) << std::endl; // sizeof(num_sequence)=24 std::cout << "sizeof(Fibonacci)=" << sizeof(Fibonacci) << std::endl; // sizeof(Fibonacci)=24 std::cout << "num_sequence::max_elems() = " << num_sequence::max_elems() << std::endl; // num_sequence::max_elems() = 1024 // error 不允许使用抽象类型的对象 // num_sequence *pbase = new num_sequence(); // 基类的指针指向派生类,可形成动态多态 num_sequence *pnum = new Fibonacci(10, 3); // 调用构造函数num_sequence::num_sequence(uint_t length, uint_t beg_pos, std::vector<uint_t> &relems) // 调用构造函数Fibonacci::Fibonacci(uint_t length, uint_t beg_pos) // RTTI(Run-Time Type Identification 运行时类型鉴定机制) if (typeid(*pnum) == typeid(Fibonacci)) { std::cout << "pnum指向的对象是Fibonacci类型" << std::endl; } else { std::cout << "pnum指向的对象是其他类型" << std::endl; } // pnum指向的对象是Fibonacci类型 if (dynamic_cast<Fibonacci *>(pnum)) { std::cout << "pnum指向的对象是Fibonacci类型" << std::endl; } else { std::cout << "pnum指向的对象是其他类型" << std::endl; } // pnum指向的对象是Fibonacci类型 // 强制转换,编译器无法确认是否安全,程序员需要明白这是在干什么 if (static_cast<Fibonacci *>(pnum)) { std::cout << "pnum指向的对象是Fibonacci类型" << std::endl; } else { std::cout << "pnum指向的对象是其他类型" << std::endl; } std::cout << "pnum->what_am_i() = " << pnum->what_am_i() << std::endl; // pnum->what_am_i() = N5mycpp9FibonacciE std::cout << "pnum->beg_pos() = " << pnum->beg_pos() << std::endl; // pnum->beg_pos() = 3 std::cout << "pnum->length() = " << pnum->length() << std::endl; // pnum->length() = 10 pnum->print(); // 当前的数列元素: std::cout << "pnum->elem(10) = " << pnum->elem(10) << std::endl; // pnum->elem(10) = 144 std::cout << "pnum->beg_pos() = " << pnum->beg_pos() << std::endl; // pnum->beg_pos() = 3 std::cout << "pnum->length() = " << pnum->length() << std::endl; // pnum->length() = 10 pnum->print(); // 当前的数列元素:2 3 5 8 13 21 34 55 89 144 std::cout << "pnum->elem(30) = " << pnum->elem(30) << std::endl; // pnum->elem(30) = 2178309 std::cout << "pnum->beg_pos() = " << pnum->beg_pos() << std::endl; // pnum->beg_pos() = 3 std::cout << "pnum->length() = " << pnum->length() << std::endl; // pnum->length() = 30 pnum->print(); // 当前的数列元素:2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 delete pnum; // 调用析构函数Fibonacci::~Fibonacci() // 调用析构函数num_sequence::~num_sequence() return 0; }
2024年10月11日
2 阅读
0 评论
0 点赞
2024-09-06
Windows使用MSYS2安装GCC编译器记录
前言 本文参考 Visual Studio Code 官方文档中 C++ 环境配置的部分章节,做出整理并记录。 原文地址:https://code.visualstudio.com/docs/cpp/config-mingw#_prerequisites 使用MSYS2在Windows安装C++编译器 官网:https://www.msys2.org/ 下载地址:msys2-x86_64-20240727.exe base-devel 官网介绍中安装了这个软件包,但是我感觉如果只是要一个 C++ 编译器的话,这个软件包不装也不影响编译。 Administrator@VM-WIN10 MSYS ~ # pacman -S --needed base-devel resolving dependencies... looking for conflicting packages... Packages (13) binutils-2.42-1 bison-3.8.2-5 diffstat-1.66-1 diffutils-3.10-1 dos2unix-7.5.2-1 flex-2.6.4-3 m4-1.4.19-2 make-4.4.1-2 patch-2.7.6-2 pkgconf-2.1.1-1 texinfo-7.1-3 texinfo-tex-7.1-3 base-devel-2022.12-2 Total Download Size: 9.62 MiB Total Installed Size: 59.67 MiB :: Proceed with installation? [Y/n] Y :: Retrieving packages... bison-3.8.2-5-x86_64 777.2 KiB 2.56 MiB/s 00:00 [###################################################################] 100% make-4.4.1-2-x86_64 507.6 KiB 1480 KiB/s 00:00 [###################################################################] 100% dos2unix-7.5.2-1-x86_64 446.5 KiB 1194 KiB/s 00:00 [###################################################################] 100% diffutils-3.10-1-x86_64 379.8 KiB 4.76 MiB/s 00:00 [###################################################################] 100% flex-2.6.4-3-x86_64 303.8 KiB 3.16 MiB/s 00:00 [###################################################################] 100% m4-1.4.19-2-x86_64 238.1 KiB 2.47 MiB/s 00:00 [###################################################################] 100% texinfo-7.1-3-x86_64 1423.6 KiB 2.70 MiB/s 00:01 [###################################################################] 100% patch-2.7.6-2-x86_64 96.8 KiB 1242 KiB/s 00:00 [###################################################################] 100% pkgconf-2.1.1-1-x86_64 61.8 KiB 792 KiB/s 00:00 [###################################################################] 100% diffstat-1.66-1-x86_64 29.1 KiB 310 KiB/s 00:00 [###################################################################] 100% binutils-2.42-1-x86_64 5.4 MiB 7.90 MiB/s 00:01 [###################################################################] 100% texinfo-tex-7.1-3-x86_64 25.4 KiB 180 KiB/s 00:00 [###################################################################] 100% base-devel-2022.12-2-any 2.4 KiB 22.1 KiB/s 00:00 [###################################################################] 100% Total (13/13) 9.6 MiB 11.2 MiB/s 00:01 [###################################################################] 100% (13/13) checking keys in keyring [###################################################################] 100% (13/13) checking package integrity [###################################################################] 100% (13/13) loading package files [###################################################################] 100% (13/13) checking for file conflicts [###################################################################] 100% (13/13) checking available disk space [###################################################################] 100% :: Processing package changes... ( 1/13) installing binutils [###################################################################] 100% ( 2/13) installing m4 [###################################################################] 100% ( 3/13) installing bison [###################################################################] 100% ( 4/13) installing diffstat [###################################################################] 100% ( 5/13) installing diffutils [###################################################################] 100% ( 6/13) installing dos2unix [###################################################################] 100% ( 7/13) installing flex [###################################################################] 100% ( 8/13) installing texinfo [###################################################################] 100% ( 9/13) installing texinfo-tex [###################################################################] 100% (10/13) installing make [###################################################################] 100% (11/13) installing patch [###################################################################] 100% Optional dependencies for patch ed: for patch -e functionality (12/13) installing pkgconf [###################################################################] 100% (13/13) installing base-devel [###################################################################] 100% :: Running post-transaction hooks... (1/1) Updating the info directory file... Administrator@VM-WIN10 MSYS ~ # 编译工具链 MSYS2 中可使用的 C++ 编译工具链很多,根据 MSYS2 安装后的目录来看大概分为3种:UCRT、mingw、clang 。其中 mingw 和 clang 又按系统架构细分为x86、arm,32位或者64位。我们选择其中一种即可。我按官方文档介绍安装的是 mingw-w64-ucrt-x86_64-toolchain。 以下为各版本编译器安装过程记录,其中交叉编译工具链部分未安装 ucrt64 Administrator@VM-WIN10 MSYS ~ # pacman -S --needed mingw-w64-ucrt-x86_64-toolchain :: There are 13 members in group mingw-w64-ucrt-x86_64-toolchain: :: Repository ucrt64 1) mingw-w64-ucrt-x86_64-binutils 2) mingw-w64-ucrt-x86_64-crt-git 3) mingw-w64-ucrt-x86_64-gcc 4) mingw-w64-ucrt-x86_64-gdb 5) mingw-w64-ucrt-x86_64-gdb-multiarch 6) mingw-w64-ucrt-x86_64-headers-git 7) mingw-w64-ucrt-x86_64-libmangle-git 8) mingw-w64-ucrt-x86_64-libwinpthread-git 9) mingw-w64-ucrt-x86_64-make 10) mingw-w64-ucrt-x86_64-pkgconf 11) mingw-w64-ucrt-x86_64-tools-git 12) mingw-w64-ucrt-x86_64-winpthreads-git 13) mingw-w64-ucrt-x86_64-winstorecompat-git Enter a selection (default=all): resolving dependencies... looking for conflicting packages... Packages (40) mingw-w64-ucrt-x86_64-bzip2-1.0.8-3 mingw-w64-ucrt-x86_64-expat-2.6.2-1 mingw-w64-ucrt-x86_64-gcc-libs-14.1.0-3 mingw-w64-ucrt-x86_64-gettext-runtime-0.22.5-2 mingw-w64-ucrt-x86_64-gmp-6.3.0-2 mingw-w64-ucrt-x86_64-isl-0.26-1 mingw-w64-ucrt-x86_64-libffi-3.4.6-1 mingw-w64-ucrt-x86_64-libiconv-1.17-4 mingw-w64-ucrt-x86_64-libsystre-1.0.1-5 mingw-w64-ucrt-x86_64-libtre-git-r177.07e66d0-2 mingw-w64-ucrt-x86_64-mpc-1.3.1-2 mingw-w64-ucrt-x86_64-mpdecimal-4.0.0-1 mingw-w64-ucrt-x86_64-mpfr-4.2.1-2 mingw-w64-ucrt-x86_64-ncurses-6.4.20231217-1 mingw-w64-ucrt-x86_64-openssl-3.3.1-1 mingw-w64-ucrt-x86_64-python-3.11.9-1 mingw-w64-ucrt-x86_64-readline-8.2.010-1 mingw-w64-ucrt-x86_64-sqlite3-3.46.0-1 mingw-w64-ucrt-x86_64-tcl-8.6.13-1 mingw-w64-ucrt-x86_64-termcap-1.3.1-7 mingw-w64-ucrt-x86_64-tk-8.6.13-1 mingw-w64-ucrt-x86_64-tzdata-2024a-1 mingw-w64-ucrt-x86_64-windows-default-manifest-6.4-4 mingw-w64-ucrt-x86_64-xxhash-0.8.2-2 mingw-w64-ucrt-x86_64-xz-5.6.2-2 mingw-w64-ucrt-x86_64-zlib-1.3.1-1 mingw-w64-ucrt-x86_64-zstd-1.5.6-2 mingw-w64-ucrt-x86_64-binutils-2.42-2 mingw-w64-ucrt-x86_64-crt-git-12.0.0.r81.g90abf784a-1 mingw-w64-ucrt-x86_64-gcc-14.1.0-3 mingw-w64-ucrt-x86_64-gdb-15.1-1 mingw-w64-ucrt-x86_64-gdb-multiarch-15.1-1 mingw-w64-ucrt-x86_64-headers-git-12.0.0.r81.g90abf784a-1 mingw-w64-ucrt-x86_64-libmangle-git-12.0.0.r81.g90abf784a-1 mingw-w64-ucrt-x86_64-libwinpthread-git-12.0.0.r81.g90abf784a-1 mingw-w64-ucrt-x86_64-make-4.4.1-2 mingw-w64-ucrt-x86_64-pkgconf-1~2.2.0-1 mingw-w64-ucrt-x86_64-tools-git-12.0.0.r81.g90abf784a-1 mingw-w64-ucrt-x86_64-winpthreads-git-12.0.0.r81.g90abf784a-1 mingw-w64-ucrt-x86_64-winstorecompat-git-12.0.0.r81.g90abf784a-1 Total Download Size: 116.34 MiB Total Installed Size: 855.70 MiB :: Proceed with installation? [Y/n] Y :: Retrieving packages... mingw-w64-ucrt-x86_64-gdb-multiarch-15.1-1-any 6.3 MiB 9.35 MiB/s 00:01 [###################################################################] 100% mingw-w64-ucrt-x86_64-headers-git-12.0.0.r81.g90abf784a-1-any 6.0 MiB 3.85 MiB/s 00:02 [###################################################################] 100% mingw-w64-ucrt-x86_64-binutils-2.42-2-any 5.8 MiB 4.54 MiB/s 00:01 [###################################################################] 100% mingw-w64-ucrt-x86_64-gcc-14.1.0-3-any 43.4 MiB 12.2 MiB/s 00:04 [###################################################################] 100% mingw-w64-ucrt-x86_64-crt-git-12.0.0.r81.g90abf784a-1-any 4.4 MiB 3.43 MiB/s 00:01 [###################################################################] 100% mingw-w64-ucrt-x86_64-python-3.11.9-1-any 23.3 MiB 5.80 MiB/s 00:04 [###################################################################] 100% mingw-w64-ucrt-x86_64-gdb-15.1-1-any 3.8 MiB 10.6 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-tcl-8.6.13-1-any 2.7 MiB 6.59 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-openssl-3.3.1-1-any 7.3 MiB 1760 KiB/s 00:04 [###################################################################] 100% mingw-w64-ucrt-x86_64-tk-8.6.13-1-any 2018.8 KiB 7.02 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-ncurses-6.4.20231217-1-any 1813.2 KiB 8.09 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-sqlite3-3.46.0-1-any 1679.0 KiB 13.0 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-isl-0.26-1-any 1452.1 KiB 8.24 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-gcc-libs-14.1.0-3-any 1030.1 KiB 7.19 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-xz-5.6.2-2-any 756.9 KiB 6.78 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-libiconv-1.17-4-any 719.2 KiB 4.98 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-zstd-1.5.6-2-any 636.4 KiB 6.68 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-gmp-6.3.0-2-any 578.5 KiB 4.01 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-mpfr-4.2.1-2-any 535.7 KiB 3.35 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-readline-8.2.010-1-any 411.5 KiB 2.58 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-tools-git-12.0.0.r81.g90abf784a-1-any 314.8 KiB 1841 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-gettext-runtime-0.22.5-2-any 297.3 KiB 2.06 MiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-tzdata-2024a-1-any 227.1 KiB 1611 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-expat-2.6.2-1-any 162.6 KiB 1478 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-mpdecimal-4.0.0-1-any 138.5 KiB 882 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-make-4.4.1-2-any 136.0 KiB 964 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-mpc-1.3.1-2-any 128.3 KiB 910 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-xxhash-0.8.2-2-any 104.2 KiB 833 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-zlib-1.3.1-1-any 92.1 KiB 845 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-pkgconf-1~2.2.0-1-any 84.5 KiB 1083 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-libtre-git-r177.07e66d0-2-any 80.3 KiB 1030 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-bzip2-1.0.8-3-any 76.5 KiB 543 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-libffi-3.4.6-1-any 43.1 KiB 251 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-winpthreads-git-12.0.0.r81.g90abf784a-1-any 39.8 KiB 232 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-libwinpthread-git-12.0.0.r81.g90abf784a-1-any 29.3 KiB 156 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-termcap-1.3.1-7-any 27.3 KiB 174 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-winstorecompat-git-12.0.0.r81.g90abf784a-1-any 23.3 KiB 124 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-libsystre-1.0.1-5-any 10.5 KiB 135 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-libmangle-git-12.0.0.r81.g90abf784a-1-any 22.4 KiB 118 KiB/s 00:00 [###################################################################] 100% mingw-w64-ucrt-x86_64-windows-default-manifest-6.4-4-any 3.0 KiB 27.4 KiB/s 00:00 [###################################################################] 100% Total (40/40) 116.3 MiB 19.7 MiB/s 00:06 [###################################################################] 100% (40/40) checking keys in keyring [###################################################################] 100% (40/40) checking package integrity [###################################################################] 100% (40/40) loading package files [###################################################################] 100% (40/40) checking for file conflicts [###################################################################] 100% (40/40) checking available disk space [###################################################################] 100% :: Processing package changes... ( 1/40) installing mingw-w64-ucrt-x86_64-libwinpthread-git [###################################################################] 100% ( 2/40) installing mingw-w64-ucrt-x86_64-gcc-libs [###################################################################] 100% ( 3/40) installing mingw-w64-ucrt-x86_64-libiconv [###################################################################] 100% ( 4/40) installing mingw-w64-ucrt-x86_64-gettext-runtime [###################################################################] 100% ( 5/40) installing mingw-w64-ucrt-x86_64-zlib [###################################################################] 100% ( 6/40) installing mingw-w64-ucrt-x86_64-zstd [###################################################################] 100% ( 7/40) installing mingw-w64-ucrt-x86_64-binutils [###################################################################] 100% ( 8/40) installing mingw-w64-ucrt-x86_64-headers-git [###################################################################] 100% ( 9/40) installing mingw-w64-ucrt-x86_64-crt-git [###################################################################] 100% (10/40) installing mingw-w64-ucrt-x86_64-gmp [###################################################################] 100% (11/40) installing mingw-w64-ucrt-x86_64-isl [###################################################################] 100% (12/40) installing mingw-w64-ucrt-x86_64-mpfr [###################################################################] 100% (13/40) installing mingw-w64-ucrt-x86_64-mpc [###################################################################] 100% (14/40) installing mingw-w64-ucrt-x86_64-windows-default-manifest [###################################################################] 100% (15/40) installing mingw-w64-ucrt-x86_64-winpthreads-git [###################################################################] 100% (16/40) installing mingw-w64-ucrt-x86_64-gcc [###################################################################] 100% (17/40) installing mingw-w64-ucrt-x86_64-expat [###################################################################] 100% (18/40) installing mingw-w64-ucrt-x86_64-libtre-git [###################################################################] 100% (19/40) installing mingw-w64-ucrt-x86_64-libsystre [###################################################################] 100% (20/40) installing mingw-w64-ucrt-x86_64-ncurses [###################################################################] 100% (21/40) installing mingw-w64-ucrt-x86_64-bzip2 [###################################################################] 100% (22/40) installing mingw-w64-ucrt-x86_64-libffi [###################################################################] 100% (23/40) installing mingw-w64-ucrt-x86_64-mpdecimal [###################################################################] 100% (24/40) installing mingw-w64-ucrt-x86_64-openssl [###################################################################] 100% Optional dependencies for mingw-w64-ucrt-x86_64-openssl mingw-w64-ucrt-x86_64-ca-certificates (25/40) installing mingw-w64-ucrt-x86_64-termcap [###################################################################] 100% (26/40) installing mingw-w64-ucrt-x86_64-readline [###################################################################] 100% (27/40) installing mingw-w64-ucrt-x86_64-tcl [###################################################################] 100% (28/40) installing mingw-w64-ucrt-x86_64-sqlite3 [###################################################################] 100% (29/40) installing mingw-w64-ucrt-x86_64-tk [###################################################################] 100% (30/40) installing mingw-w64-ucrt-x86_64-xz [###################################################################] 100% (31/40) installing mingw-w64-ucrt-x86_64-tzdata [###################################################################] 100% (32/40) installing mingw-w64-ucrt-x86_64-python [###################################################################] 100% (33/40) installing mingw-w64-ucrt-x86_64-xxhash [###################################################################] 100% (34/40) installing mingw-w64-ucrt-x86_64-gdb [###################################################################] 100% Optional dependencies for mingw-w64-ucrt-x86_64-gdb mingw-w64-ucrt-x86_64-python-pygments: for syntax highlighting (35/40) installing mingw-w64-ucrt-x86_64-gdb-multiarch [###################################################################] 100% Optional dependencies for mingw-w64-ucrt-x86_64-gdb-multiarch mingw-w64-ucrt-x86_64-python-pygments: for syntax highlighting (36/40) installing mingw-w64-ucrt-x86_64-libmangle-git [###################################################################] 100% (37/40) installing mingw-w64-ucrt-x86_64-make [###################################################################] 100% (38/40) installing mingw-w64-ucrt-x86_64-pkgconf [###################################################################] 100% (39/40) installing mingw-w64-ucrt-x86_64-tools-git [###################################################################] 100% (40/40) installing mingw-w64-ucrt-x86_64-winstorecompat-git [###################################################################] 100% Administrator@VM-WIN10 MSYS ~ # pacman -S --needed mingw-w64-ucrt-x86_64-arm-none-eabi-toolchain pacman -S --needed mingw-w64-ucrt-x86_64-avr-toolchain pacman -S --needed mingw-w64-ucrt-x86_64-riscv64-unknown-elf-toolchain mingw32 mingw-w64-i686-toolchain Administrator@VM-WIN10 MSYS ~ # pacman -S --needed mingw-w64-i686-toolchain :: There are 13 members in group mingw-w64-i686-toolchain: :: Repository mingw32 1) mingw-w64-i686-binutils 2) mingw-w64-i686-crt-git 3) mingw-w64-i686-gcc 4) mingw-w64-i686-gdb 5) mingw-w64-i686-gdb-multiarch 6) mingw-w64-i686-headers-git 7) mingw-w64-i686-libmangle-git 8) mingw-w64-i686-libwinpthread-git 9) mingw-w64-i686-make 10) mingw-w64-i686-pkgconf 11) mingw-w64-i686-tools-git 12) mingw-w64-i686-winpthreads-git 13) mingw-w64-i686-winstorecompat-git Enter a selection (default=all): resolving dependencies... looking for conflicting packages... Packages (40) mingw-w64-i686-bzip2-1.0.8-3 mingw-w64-i686-expat-2.6.2-1 mingw-w64-i686-gcc-libs-14.1.0-3 mingw-w64-i686-gettext-runtime-0.22.5-2 mingw-w64-i686-gmp-6.3.0-2 mingw-w64-i686-isl-0.26-1 mingw-w64-i686-libffi-3.4.6-1 mingw-w64-i686-libiconv-1.17-4 mingw-w64-i686-libsystre-1.0.1-5 mingw-w64-i686-libtre-git-r177.07e66d0-2 mingw-w64-i686-mpc-1.3.1-2 mingw-w64-i686-mpdecimal-4.0.0-1 mingw-w64-i686-mpfr-4.2.1-2 mingw-w64-i686-ncurses-6.4.20231217-1 mingw-w64-i686-openssl-3.3.1-1 mingw-w64-i686-python-3.11.9-1 mingw-w64-i686-readline-8.2.010-1 mingw-w64-i686-sqlite3-3.46.0-1 mingw-w64-i686-tcl-8.6.13-1 mingw-w64-i686-termcap-1.3.1-7 mingw-w64-i686-tk-8.6.13-1 mingw-w64-i686-tzdata-2024a-1 mingw-w64-i686-windows-default-manifest-6.4-4 mingw-w64-i686-xxhash-0.8.2-2 mingw-w64-i686-xz-5.6.2-2 mingw-w64-i686-zlib-1.3.1-1 mingw-w64-i686-zstd-1.5.6-2 mingw-w64-i686-binutils-2.42-2 mingw-w64-i686-crt-git-12.0.0.r81.g90abf784a-1 mingw-w64-i686-gcc-14.1.0-3 mingw-w64-i686-gdb-15.1-1 mingw-w64-i686-gdb-multiarch-15.1-1 mingw-w64-i686-headers-git-12.0.0.r81.g90abf784a-1 mingw-w64-i686-libmangle-git-12.0.0.r81.g90abf784a-1 mingw-w64-i686-libwinpthread-git-12.0.0.r81.g90abf784a-1 mingw-w64-i686-make-4.4.1-2 mingw-w64-i686-pkgconf-1~2.2.0-1 mingw-w64-i686-tools-git-12.0.0.r81.g90abf784a-1 mingw-w64-i686-winpthreads-git-12.0.0.r81.g90abf784a-1 mingw-w64-i686-winstorecompat-git-12.0.0.r81.g90abf784a-1 Total Download Size: 114.86 MiB Total Installed Size: 782.95 MiB :: Proceed with installation? [Y/n] Y :: Retrieving packages... mingw-w64-i686-openssl-3.3.1-1-any 7.2 MiB 8.11 MiB/s 00:01 [###################################################################] 100% mingw-w64-i686-headers-git-12.0.0.r81.g90abf784a-1-any 6.0 MiB 6.03 MiB/s 00:01 [###################################################################] 100% mingw-w64-i686-gdb-multiarch-15.1-1-any 6.8 MiB 4.61 MiB/s 00:01 [###################################################################] 100% mingw-w64-i686-binutils-2.42-2-any 5.8 MiB 8.19 MiB/s 00:01 [###################################################################] 100% mingw-w64-i686-python-3.11.9-1-any 23.4 MiB 12.8 MiB/s 00:02 [###################################################################] 100% mingw-w64-i686-gdb-15.1-1-any 4.0 MiB 4.49 MiB/s 00:01 [###################################################################] 100% mingw-w64-i686-crt-git-12.0.0.r81.g90abf784a-1-any 3.6 MiB 9.27 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-tcl-8.6.13-1-any 2.7 MiB 6.64 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-tk-8.6.13-1-any 2041.2 KiB 3.64 MiB/s 00:01 [###################################################################] 100% mingw-w64-i686-ncurses-6.4.20231217-1-any 1803.2 KiB 4.91 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-sqlite3-3.46.0-1-any 1744.3 KiB 9.90 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-isl-0.26-1-any 1461.3 KiB 7.59 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-gcc-14.1.0-3-any 41.8 MiB 14.0 MiB/s 00:03 [###################################################################] 100% mingw-w64-i686-gcc-libs-14.1.0-3-any 1095.0 KiB 3.42 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-xz-5.6.2-2-any 771.0 KiB 3.71 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-libiconv-1.17-4-any 727.9 KiB 7.56 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-zstd-1.5.6-2-any 631.5 KiB 6.63 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-mpfr-4.2.1-2-any 549.1 KiB 4.92 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-gmp-6.3.0-2-any 543.0 KiB 4.24 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-readline-8.2.010-1-any 407.0 KiB 3.18 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-tools-git-12.0.0.r81.g90abf784a-1-any 319.8 KiB 2.50 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-gettext-runtime-0.22.5-2-any 303.0 KiB 2.10 MiB/s 00:00 [###################################################################] 100% mingw-w64-i686-tzdata-2024a-1-any 227.2 KiB 1215 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-expat-2.6.2-1-any 165.6 KiB 1068 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-mpdecimal-4.0.0-1-any 158.3 KiB 842 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-make-4.4.1-2-any 142.4 KiB 1531 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-mpc-1.3.1-2-any 133.1 KiB 950 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-xxhash-0.8.2-2-any 131.0 KiB 1409 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-zlib-1.3.1-1-any 103.3 KiB 1099 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-bzip2-1.0.8-3-any 94.9 KiB 673 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-pkgconf-1~2.2.0-1-any 89.0 KiB 712 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-libtre-git-r177.07e66d0-2-any 82.8 KiB 662 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-libffi-3.4.6-1-any 45.8 KiB 482 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-winpthreads-git-12.0.0.r81.g90abf784a-1-any 41.2 KiB 329 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-libwinpthread-git-12.0.0.r81.g90abf784a-1-any 33.0 KiB 176 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-termcap-1.3.1-7-any 29.2 KiB 186 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-winstorecompat-git-12.0.0.r81.g90abf784a-1-any 23.9 KiB 170 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-libsystre-1.0.1-5-any 10.4 KiB 94.3 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-libmangle-git-12.0.0.r81.g90abf784a-1-any 21.9 KiB 156 KiB/s 00:00 [###################################################################] 100% mingw-w64-i686-windows-default-manifest-6.4-4-any 3.0 KiB 31.6 KiB/s 00:00 [###################################################################] 100% Total (40/40) 114.9 MiB 26.4 MiB/s 00:04 [###################################################################] 100% (40/40) checking keys in keyring [###################################################################] 100% (40/40) checking package integrity [###################################################################] 100% (40/40) loading package files [###################################################################] 100% (40/40) checking for file conflicts [###################################################################] 100% (40/40) checking available disk space [###################################################################] 100% :: Processing package changes... ( 1/40) installing mingw-w64-i686-libwinpthread-git [###################################################################] 100% ( 2/40) installing mingw-w64-i686-gcc-libs [###################################################################] 100% ( 3/40) installing mingw-w64-i686-libiconv [###################################################################] 100% ( 4/40) installing mingw-w64-i686-gettext-runtime [###################################################################] 100% ( 5/40) installing mingw-w64-i686-zlib [###################################################################] 100% ( 6/40) installing mingw-w64-i686-zstd [###################################################################] 100% ( 7/40) installing mingw-w64-i686-binutils [###################################################################] 100% ( 8/40) installing mingw-w64-i686-headers-git [###################################################################] 100% ( 9/40) installing mingw-w64-i686-crt-git [###################################################################] 100% (10/40) installing mingw-w64-i686-gmp [###################################################################] 100% (11/40) installing mingw-w64-i686-isl [###################################################################] 100% (12/40) installing mingw-w64-i686-mpfr [###################################################################] 100% (13/40) installing mingw-w64-i686-mpc [###################################################################] 100% (14/40) installing mingw-w64-i686-windows-default-manifest [###################################################################] 100% (15/40) installing mingw-w64-i686-winpthreads-git [###################################################################] 100% (16/40) installing mingw-w64-i686-gcc [###################################################################] 100% (17/40) installing mingw-w64-i686-expat [###################################################################] 100% (18/40) installing mingw-w64-i686-libtre-git [###################################################################] 100% (19/40) installing mingw-w64-i686-libsystre [###################################################################] 100% (20/40) installing mingw-w64-i686-ncurses [###################################################################] 100% (21/40) installing mingw-w64-i686-bzip2 [###################################################################] 100% (22/40) installing mingw-w64-i686-libffi [###################################################################] 100% (23/40) installing mingw-w64-i686-mpdecimal [###################################################################] 100% (24/40) installing mingw-w64-i686-openssl [###################################################################] 100% Optional dependencies for mingw-w64-i686-openssl mingw-w64-i686-ca-certificates (25/40) installing mingw-w64-i686-termcap [###################################################################] 100% (26/40) installing mingw-w64-i686-readline [###################################################################] 100% (27/40) installing mingw-w64-i686-tcl [###################################################################] 100% (28/40) installing mingw-w64-i686-sqlite3 [###################################################################] 100% (29/40) installing mingw-w64-i686-tk [###################################################################] 100% (30/40) installing mingw-w64-i686-xz [###################################################################] 100% (31/40) installing mingw-w64-i686-tzdata [###################################################################] 100% (32/40) installing mingw-w64-i686-python [###################################################################] 100% (33/40) installing mingw-w64-i686-xxhash [###################################################################] 100% (34/40) installing mingw-w64-i686-gdb [###################################################################] 100% Optional dependencies for mingw-w64-i686-gdb mingw-w64-i686-python-pygments: for syntax highlighting (35/40) installing mingw-w64-i686-gdb-multiarch [###################################################################] 100% Optional dependencies for mingw-w64-i686-gdb-multiarch mingw-w64-i686-python-pygments: for syntax highlighting (36/40) installing mingw-w64-i686-libmangle-git [###################################################################] 100% (37/40) installing mingw-w64-i686-make [###################################################################] 100% (38/40) installing mingw-w64-i686-pkgconf [###################################################################] 100% (39/40) installing mingw-w64-i686-tools-git [###################################################################] 100% (40/40) installing mingw-w64-i686-winstorecompat-git [###################################################################] 100% Administrator@VM-WIN10 MSYS ~ # mingw64 mingw-w64-x86_64-toolchain Administrator@VM-WIN10 MSYS ~ # pacman -S --needed mingw-w64-x86_64-toolchain :: There are 13 members in group mingw-w64-x86_64-toolchain: :: Repository mingw64 1) mingw-w64-x86_64-binutils 2) mingw-w64-x86_64-crt-git 3) mingw-w64-x86_64-gcc 4) mingw-w64-x86_64-gdb 5) mingw-w64-x86_64-gdb-multiarch 6) mingw-w64-x86_64-headers-git 7) mingw-w64-x86_64-libmangle-git 8) mingw-w64-x86_64-libwinpthread-git 9) mingw-w64-x86_64-make 10) mingw-w64-x86_64-pkgconf 11) mingw-w64-x86_64-tools-git 12) mingw-w64-x86_64-winpthreads-git 13) mingw-w64-x86_64-winstorecompat-git Enter a selection (default=all): resolving dependencies... looking for conflicting packages... Packages (40) mingw-w64-x86_64-bzip2-1.0.8-3 mingw-w64-x86_64-expat-2.6.2-1 mingw-w64-x86_64-gcc-libs-14.1.0-3 mingw-w64-x86_64-gettext-runtime-0.22.5-2 mingw-w64-x86_64-gmp-6.3.0-2 mingw-w64-x86_64-isl-0.26-1 mingw-w64-x86_64-libffi-3.4.6-1 mingw-w64-x86_64-libiconv-1.17-4 mingw-w64-x86_64-libsystre-1.0.1-5 mingw-w64-x86_64-libtre-git-r177.07e66d0-2 mingw-w64-x86_64-mpc-1.3.1-2 mingw-w64-x86_64-mpdecimal-4.0.0-1 mingw-w64-x86_64-mpfr-4.2.1-2 mingw-w64-x86_64-ncurses-6.4.20231217-1 mingw-w64-x86_64-openssl-3.3.1-1 mingw-w64-x86_64-python-3.11.9-1 mingw-w64-x86_64-readline-8.2.010-1 mingw-w64-x86_64-sqlite3-3.46.0-1 mingw-w64-x86_64-tcl-8.6.13-1 mingw-w64-x86_64-termcap-1.3.1-7 mingw-w64-x86_64-tk-8.6.13-1 mingw-w64-x86_64-tzdata-2024a-1 mingw-w64-x86_64-windows-default-manifest-6.4-4 mingw-w64-x86_64-xxhash-0.8.2-2 mingw-w64-x86_64-xz-5.6.2-2 mingw-w64-x86_64-zlib-1.3.1-1 mingw-w64-x86_64-zstd-1.5.6-2 mingw-w64-x86_64-binutils-2.42-2 mingw-w64-x86_64-crt-git-12.0.0.r81.g90abf784a-1 mingw-w64-x86_64-gcc-14.1.0-3 mingw-w64-x86_64-gdb-15.1-1 mingw-w64-x86_64-gdb-multiarch-15.1-1 mingw-w64-x86_64-headers-git-12.0.0.r81.g90abf784a-1 mingw-w64-x86_64-libmangle-git-12.0.0.r81.g90abf784a-1 mingw-w64-x86_64-libwinpthread-git-12.0.0.r81.g90abf784a-1 mingw-w64-x86_64-make-4.4.1-2 mingw-w64-x86_64-pkgconf-1~2.2.0-1 mingw-w64-x86_64-tools-git-12.0.0.r81.g90abf784a-1 mingw-w64-x86_64-winpthreads-git-12.0.0.r81.g90abf784a-1 mingw-w64-x86_64-winstorecompat-git-12.0.0.r81.g90abf784a-1 Total Download Size: 116.39 MiB Total Installed Size: 855.76 MiB :: Proceed with installation? [Y/n] Y :: Retrieving packages... mingw-w64-x86_64-headers-git-12.0.0.r81.g90abf784a-1-any 6.0 MiB 8.57 MiB/s 00:01 [###################################################################] 100% mingw-w64-x86_64-gdb-multiarch-15.1-1-any 6.3 MiB 8.20 MiB/s 00:01 [###################################################################] 100% mingw-w64-x86_64-binutils-2.42-2-any 5.8 MiB 12.0 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-crt-git-12.0.0.r81.g90abf784a-1-any 4.3 MiB 6.15 MiB/s 00:01 [###################################################################] 100% mingw-w64-x86_64-gdb-15.1-1-any 3.8 MiB 12.2 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-tcl-8.6.13-1-any 2.7 MiB 8.55 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-tk-8.6.13-1-any 2029.2 KiB 7.45 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-openssl-3.3.1-1-any 7.3 MiB 3.28 MiB/s 00:02 [###################################################################] 100% mingw-w64-x86_64-gcc-14.1.0-3-any 43.4 MiB 17.3 MiB/s 00:03 [###################################################################] 100% mingw-w64-x86_64-ncurses-6.4.20231217-1-any 1812.7 KiB 7.08 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-sqlite3-3.46.0-1-any 1707.8 KiB 7.13 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-isl-0.26-1-any 1442.0 KiB 5.31 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-gcc-libs-14.1.0-3-any 1028.0 KiB 9.21 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-xz-5.6.2-2-any 755.8 KiB 6.71 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-libiconv-1.17-4-any 718.9 KiB 7.55 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-zstd-1.5.6-2-any 635.9 KiB 5.70 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-gmp-6.3.0-2-any 577.8 KiB 5.18 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-mpfr-4.2.1-2-any 535.8 KiB 4.80 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-readline-8.2.010-1-any 411.0 KiB 2.85 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-tools-git-12.0.0.r81.g90abf784a-1-any 313.8 KiB 2.17 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-gettext-runtime-0.22.5-2-any 297.2 KiB 4.68 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-tzdata-2024a-1-any 227.1 KiB 2.84 MiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-expat-2.6.2-1-any 162.2 KiB 1744 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-mpdecimal-4.0.0-1-any 150.8 KiB 1370 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-make-4.4.1-2-any 135.3 KiB 966 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-mpc-1.3.1-2-any 128.7 KiB 1030 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-xxhash-0.8.2-2-any 116.4 KiB 1058 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-zlib-1.3.1-1-any 104.4 KiB 835 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-bzip2-1.0.8-3-any 90.9 KiB 978 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-pkgconf-1~2.2.0-1-any 84.4 KiB 675 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-libtre-git-r177.07e66d0-2-any 80.0 KiB 734 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-libffi-3.4.6-1-any 42.6 KiB 391 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-python-3.11.9-1-any 23.3 MiB 6.37 MiB/s 00:04 [###################################################################] 100% mingw-w64-x86_64-winpthreads-git-12.0.0.r81.g90abf784a-1-any 39.8 KiB 284 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-libwinpthread-git-12.0.0.r81.g90abf784a-1-any 28.5 KiB 167 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-termcap-1.3.1-7-any 27.3 KiB 134 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-winstorecompat-git-12.0.0.r81.g90abf784a-1-any 23.3 KiB 115 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-libsystre-1.0.1-5-any 9.8 KiB 78.1 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-libmangle-git-12.0.0.r81.g90abf784a-1-any 22.4 KiB 129 KiB/s 00:00 [###################################################################] 100% mingw-w64-x86_64-windows-default-manifest-6.4-4-any 3.1 KiB 33.5 KiB/s 00:00 [###################################################################] 100% Total (40/40) 116.4 MiB 28.4 MiB/s 00:04 [###################################################################] 100% (40/40) checking keys in keyring [###################################################################] 100% (40/40) checking package integrity [###################################################################] 100% (40/40) loading package files [###################################################################] 100% (40/40) checking for file conflicts [###################################################################] 100% (40/40) checking available disk space [###################################################################] 100% :: Processing package changes... ( 1/40) installing mingw-w64-x86_64-libwinpthread-git [###################################################################] 100% ( 2/40) installing mingw-w64-x86_64-gcc-libs [###################################################################] 100% ( 3/40) installing mingw-w64-x86_64-libiconv [###################################################################] 100% ( 4/40) installing mingw-w64-x86_64-gettext-runtime [###################################################################] 100% ( 5/40) installing mingw-w64-x86_64-zlib [###################################################################] 100% ( 6/40) installing mingw-w64-x86_64-zstd [###################################################################] 100% ( 7/40) installing mingw-w64-x86_64-binutils [###################################################################] 100% ( 8/40) installing mingw-w64-x86_64-headers-git [###################################################################] 100% ( 9/40) installing mingw-w64-x86_64-crt-git [###################################################################] 100% (10/40) installing mingw-w64-x86_64-gmp [###################################################################] 100% (11/40) installing mingw-w64-x86_64-isl [###################################################################] 100% (12/40) installing mingw-w64-x86_64-mpfr [###################################################################] 100% (13/40) installing mingw-w64-x86_64-mpc [###################################################################] 100% (14/40) installing mingw-w64-x86_64-windows-default-manifest [###################################################################] 100% (15/40) installing mingw-w64-x86_64-winpthreads-git [###################################################################] 100% (16/40) installing mingw-w64-x86_64-gcc [###################################################################] 100% (17/40) installing mingw-w64-x86_64-expat [###################################################################] 100% (18/40) installing mingw-w64-x86_64-libtre-git [###################################################################] 100% (19/40) installing mingw-w64-x86_64-libsystre [###################################################################] 100% (20/40) installing mingw-w64-x86_64-ncurses [###################################################################] 100% (21/40) installing mingw-w64-x86_64-bzip2 [###################################################################] 100% (22/40) installing mingw-w64-x86_64-libffi [###################################################################] 100% (23/40) installing mingw-w64-x86_64-mpdecimal [###################################################################] 100% (24/40) installing mingw-w64-x86_64-openssl [###################################################################] 100% Optional dependencies for mingw-w64-x86_64-openssl mingw-w64-x86_64-ca-certificates (25/40) installing mingw-w64-x86_64-termcap [###################################################################] 100% (26/40) installing mingw-w64-x86_64-readline [###################################################################] 100% (27/40) installing mingw-w64-x86_64-tcl [###################################################################] 100% (28/40) installing mingw-w64-x86_64-sqlite3 [###################################################################] 100% (29/40) installing mingw-w64-x86_64-tk [###################################################################] 100% (30/40) installing mingw-w64-x86_64-xz [###################################################################] 100% (31/40) installing mingw-w64-x86_64-tzdata [###################################################################] 100% (32/40) installing mingw-w64-x86_64-python [###################################################################] 100% (33/40) installing mingw-w64-x86_64-xxhash [###################################################################] 100% (34/40) installing mingw-w64-x86_64-gdb [###################################################################] 100% Optional dependencies for mingw-w64-x86_64-gdb mingw-w64-x86_64-python-pygments: for syntax highlighting (35/40) installing mingw-w64-x86_64-gdb-multiarch [###################################################################] 100% Optional dependencies for mingw-w64-x86_64-gdb-multiarch mingw-w64-x86_64-python-pygments: for syntax highlighting (36/40) installing mingw-w64-x86_64-libmangle-git [###################################################################] 100% (37/40) installing mingw-w64-x86_64-make [###################################################################] 100% (38/40) installing mingw-w64-x86_64-pkgconf [###################################################################] 100% (39/40) installing mingw-w64-x86_64-tools-git [###################################################################] 100% (40/40) installing mingw-w64-x86_64-winstorecompat-git [###################################################################] 100% Administrator@VM-WIN10 MSYS ~ # mingw-w64-x86_64-arm-none-eabi-toolchain pacman -S --needed mingw-w64-x86_64-arm-none-eabi-toolchain mingw-w64-x86_64-avr-toolchain pacman -S --needed mingw-w64-x86_64-avr-toolchain mingw-w64-x86_64-riscv64-unknown-elf-toolchain pacman -S --needed mingw-w64-x86_64-riscv64-unknown-elf-toolchain clang32 mingw-w64-clang-i686-toolchain Administrator@VM-WIN10 MSYS ~ # pacman -S --needed mingw-w64-clang-i686-toolchain :: There are 21 members in group mingw-w64-clang-i686-toolchain: :: Repository clang32 1) mingw-w64-clang-i686-clang 2) mingw-w64-clang-i686-clang-analyzer 3) mingw-w64-clang-i686-clang-libs 4) mingw-w64-clang-i686-clang-tools-extra 5) mingw-w64-clang-i686-compiler-rt 6) mingw-w64-clang-i686-crt-git 7) mingw-w64-clang-i686-headers-git 8) mingw-w64-clang-i686-libc++ 9) mingw-w64-clang-i686-libmangle-git 10) mingw-w64-clang-i686-libunwind 11) mingw-w64-clang-i686-libwinpthread-git 12) mingw-w64-clang-i686-lld 13) mingw-w64-clang-i686-lldb 14) mingw-w64-clang-i686-llvm 15) mingw-w64-clang-i686-llvm-libs 16) mingw-w64-clang-i686-llvm-openmp 17) mingw-w64-clang-i686-make 18) mingw-w64-clang-i686-pkgconf 19) mingw-w64-clang-i686-tools-git 20) mingw-w64-clang-i686-winpthreads-git 21) mingw-w64-clang-i686-winstorecompat-git Enter a selection (default=all): resolving dependencies... looking for conflicting packages... Packages (44) mingw-w64-clang-i686-bzip2-1.0.8-3 mingw-w64-clang-i686-expat-2.6.2-1 mingw-w64-clang-i686-gettext-runtime-0.22.5-2 mingw-w64-clang-i686-libffi-3.4.6-1 mingw-w64-clang-i686-libiconv-1.17-4 mingw-w64-clang-i686-libsystre-1.0.1-5 mingw-w64-clang-i686-libtre-git-r177.07e66d0-2 mingw-w64-clang-i686-libxml2-2.12.9-1 mingw-w64-clang-i686-lua-5.4.7-2 mingw-w64-clang-i686-mpdecimal-4.0.0-1 mingw-w64-clang-i686-ncurses-6.4.20231217-1 mingw-w64-clang-i686-openssl-3.3.1-1 mingw-w64-clang-i686-python-3.11.9-1 mingw-w64-clang-i686-python-six-1.16.0-4 mingw-w64-clang-i686-readline-8.2.010-1 mingw-w64-clang-i686-sqlite3-3.46.0-1 mingw-w64-clang-i686-tcl-8.6.13-1 mingw-w64-clang-i686-termcap-1.3.1-7 mingw-w64-clang-i686-tk-8.6.13-1 mingw-w64-clang-i686-tzdata-2024a-1 mingw-w64-clang-i686-xz-5.6.2-2 mingw-w64-clang-i686-zlib-1.3.1-1 mingw-w64-clang-i686-zstd-1.5.6-2 mingw-w64-clang-i686-clang-18.1.8-1 mingw-w64-clang-i686-clang-analyzer-18.1.8-1 mingw-w64-clang-i686-clang-libs-18.1.8-1 mingw-w64-clang-i686-clang-tools-extra-18.1.8-1 mingw-w64-clang-i686-compiler-rt-18.1.8-1 mingw-w64-clang-i686-crt-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-i686-headers-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-i686-libc++-18.1.8-1 mingw-w64-clang-i686-libmangle-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-i686-libunwind-18.1.8-1 mingw-w64-clang-i686-libwinpthread-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-i686-lld-18.1.8-1 mingw-w64-clang-i686-lldb-18.1.8-1 mingw-w64-clang-i686-llvm-18.1.8-1 mingw-w64-clang-i686-llvm-libs-18.1.8-1 mingw-w64-clang-i686-llvm-openmp-18.1.8-1 mingw-w64-clang-i686-make-4.4.1-2 mingw-w64-clang-i686-pkgconf-1~2.2.0-1 mingw-w64-clang-i686-tools-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-i686-winpthreads-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-i686-winstorecompat-git-12.0.0.r81.g90abf784a-1 Total Download Size: 238.84 MiB Total Installed Size: 1640.91 MiB :: Proceed with installation? [Y/n] Y :: Retrieving packages... mingw-w64-clang-i686-python-3.11.9-1-any 23.1 MiB 12.7 MiB/s 00:02 [###################################################################] 100% mingw-w64-clang-i686-clang-18.1.8-1-any 33.5 MiB 13.0 MiB/s 00:03 [###################################################################] 100% mingw-w64-clang-i686-clang-libs-18.1.8-1-any 22.7 MiB 6.23 MiB/s 00:04 [###################################################################] 100% mingw-w64-clang-i686-openssl-3.3.1-1-any 6.8 MiB 6.99 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-i686-clang-tools-extra-18.1.8-1-any 17.0 MiB 7.95 MiB/s 00:02 [###################################################################] 100% mingw-w64-clang-i686-headers-git-12.0.0.r81.g90abf784a-1-any 6.0 MiB 11.7 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-i686-lldb-18.1.8-1-any 6.0 MiB 7.54 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-i686-lld-18.1.8-1-any 3.4 MiB 10.4 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-tcl-8.6.13-1-any 2.6 MiB 7.61 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-crt-git-12.0.0.r81.g90abf784a-1-any 2.2 MiB 8.18 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-tk-8.6.13-1-any 1996.1 KiB 7.80 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-sqlite3-3.46.0-1-any 1931.5 KiB 7.54 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-llvm-libs-18.1.8-1-any 28.1 MiB 4.64 MiB/s 00:06 [###################################################################] 100% mingw-w64-clang-i686-ncurses-6.4.20231217-1-any 1721.9 KiB 5.98 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libc++-18.1.8-1-any 1544.3 KiB 5.67 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libxml2-2.12.9-1-any 1050.5 KiB 4.71 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-compiler-rt-18.1.8-1-any 770.5 KiB 2.52 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-xz-5.6.2-2-any 765.8 KiB 2.66 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libiconv-1.17-4-any 717.2 KiB 3.73 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-llvm-18.1.8-1-any 73.5 MiB 10.8 MiB/s 00:07 [###################################################################] 100% mingw-w64-clang-i686-zstd-1.5.6-2-any 551.2 KiB 2.46 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-llvm-openmp-18.1.8-1-any 484.2 KiB 2.52 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-readline-8.2.010-1-any 400.8 KiB 1974 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-lua-5.4.7-2-any 333.6 KiB 2.99 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-gettext-runtime-0.22.5-2-any 302.3 KiB 2.71 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-tools-git-12.0.0.r81.g90abf784a-1-any 294.7 KiB 2.30 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-tzdata-2024a-1-any 227.3 KiB 1321 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-expat-2.6.2-1-any 172.0 KiB 920 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-mpdecimal-4.0.0-1-any 145.5 KiB 668 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-make-4.4.1-2-any 133.1 KiB 1685 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-clang-analyzer-18.1.8-1-any 121.8 KiB 1282 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-zlib-1.3.1-1-any 91.3 KiB 730 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-pkgconf-1~2.2.0-1-any 83.3 KiB 666 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libtre-git-r177.07e66d0-2-any 81.4 KiB 473 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-bzip2-1.0.8-3-any 81.1 KiB 400 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libunwind-18.1.8-1-any 63.3 KiB 314 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libffi-3.4.6-1-any 45.3 KiB 208 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-winpthreads-git-12.0.0.r81.g90abf784a-1-any 35.4 KiB 283 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libwinpthread-git-12.0.0.r81.g90abf784a-1-any 34.8 KiB 246 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-winstorecompat-git-12.0.0.r81.g90abf784a-1-any 27.8 KiB 255 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-termcap-1.3.1-7-any 27.7 KiB 126 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-python-six-1.16.0-4-any 27.6 KiB 59.0 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libmangle-git-12.0.0.r81.g90abf784a-1-any 18.4 KiB 43.6 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-i686-libsystre-1.0.1-5-any 11.0 KiB 27.0 KiB/s 00:00 [###################################################################] 100% Total (44/44) 238.8 MiB 28.3 MiB/s 00:08 [###################################################################] 100% (44/44) checking keys in keyring [###################################################################] 100% (44/44) checking package integrity [###################################################################] 100% (44/44) loading package files [###################################################################] 100% (44/44) checking for file conflicts [###################################################################] 100% (44/44) checking available disk space [###################################################################] 100% :: Processing package changes... ( 1/44) installing mingw-w64-clang-i686-libunwind [###################################################################] 100% ( 2/44) installing mingw-w64-clang-i686-libc++ [###################################################################] 100% ( 3/44) installing mingw-w64-clang-i686-libffi [###################################################################] 100% ( 4/44) installing mingw-w64-clang-i686-libiconv [###################################################################] 100% ( 5/44) installing mingw-w64-clang-i686-gettext-runtime [###################################################################] 100% ( 6/44) installing mingw-w64-clang-i686-xz [###################################################################] 100% ( 7/44) installing mingw-w64-clang-i686-zlib [###################################################################] 100% ( 8/44) installing mingw-w64-clang-i686-libxml2 [###################################################################] 100% Optional dependencies for mingw-w64-clang-i686-libxml2 mingw-w64-clang-i686-python: Python bindings [pending] ( 9/44) installing mingw-w64-clang-i686-zstd [###################################################################] 100% (10/44) installing mingw-w64-clang-i686-llvm-libs [###################################################################] 100% (11/44) installing mingw-w64-clang-i686-llvm [###################################################################] 100% (12/44) installing mingw-w64-clang-i686-clang-libs [###################################################################] 100% (13/44) installing mingw-w64-clang-i686-compiler-rt [###################################################################] 100% (14/44) installing mingw-w64-clang-i686-headers-git [###################################################################] 100% (15/44) installing mingw-w64-clang-i686-crt-git [###################################################################] 100% (16/44) installing mingw-w64-clang-i686-lld [###################################################################] 100% (17/44) installing mingw-w64-clang-i686-libwinpthread-git [###################################################################] 100% (18/44) installing mingw-w64-clang-i686-winpthreads-git [###################################################################] 100% (19/44) installing mingw-w64-clang-i686-clang [###################################################################] 100% (20/44) installing mingw-w64-clang-i686-expat [###################################################################] 100% (21/44) installing mingw-w64-clang-i686-bzip2 [###################################################################] 100% (22/44) installing mingw-w64-clang-i686-mpdecimal [###################################################################] 100% (23/44) installing mingw-w64-clang-i686-libtre-git [###################################################################] 100% (24/44) installing mingw-w64-clang-i686-libsystre [###################################################################] 100% (25/44) installing mingw-w64-clang-i686-ncurses [###################################################################] 100% (26/44) installing mingw-w64-clang-i686-openssl [###################################################################] 100% Optional dependencies for mingw-w64-clang-i686-openssl mingw-w64-clang-i686-ca-certificates (27/44) installing mingw-w64-clang-i686-termcap [###################################################################] 100% (28/44) installing mingw-w64-clang-i686-readline [###################################################################] 100% (29/44) installing mingw-w64-clang-i686-tcl [###################################################################] 100% (30/44) installing mingw-w64-clang-i686-sqlite3 [###################################################################] 100% (31/44) installing mingw-w64-clang-i686-tk [###################################################################] 100% (32/44) installing mingw-w64-clang-i686-tzdata [###################################################################] 100% (33/44) installing mingw-w64-clang-i686-python [###################################################################] 100% (34/44) installing mingw-w64-clang-i686-clang-analyzer [###################################################################] 100% (35/44) installing mingw-w64-clang-i686-clang-tools-extra [###################################################################] 100% (36/44) installing mingw-w64-clang-i686-libmangle-git [###################################################################] 100% (37/44) installing mingw-w64-clang-i686-lua [###################################################################] 100% (38/44) installing mingw-w64-clang-i686-python-six [###################################################################] 100% (39/44) installing mingw-w64-clang-i686-lldb [###################################################################] 100% (40/44) installing mingw-w64-clang-i686-llvm-openmp [###################################################################] 100% (41/44) installing mingw-w64-clang-i686-make [###################################################################] 100% (42/44) installing mingw-w64-clang-i686-pkgconf [###################################################################] 100% (43/44) installing mingw-w64-clang-i686-tools-git [###################################################################] 100% (44/44) installing mingw-w64-clang-i686-winstorecompat-git [###################################################################] 100% Administrator@VM-WIN10 MSYS ~ # clang64 mingw-w64-clang-x86_64-toolchain Administrator@VM-WIN10 MSYS ~ # pacman -S --needed mingw-w64-clang-x86_64-toolchain :: There are 21 members in group mingw-w64-clang-x86_64-toolchain: :: Repository clang64 1) mingw-w64-clang-x86_64-clang 2) mingw-w64-clang-x86_64-clang-analyzer 3) mingw-w64-clang-x86_64-clang-libs 4) mingw-w64-clang-x86_64-clang-tools-extra 5) mingw-w64-clang-x86_64-compiler-rt 6) mingw-w64-clang-x86_64-crt-git 7) mingw-w64-clang-x86_64-headers-git 8) mingw-w64-clang-x86_64-libc++ 9) mingw-w64-clang-x86_64-libmangle-git 10) mingw-w64-clang-x86_64-libunwind 11) mingw-w64-clang-x86_64-libwinpthread-git 12) mingw-w64-clang-x86_64-lld 13) mingw-w64-clang-x86_64-lldb 14) mingw-w64-clang-x86_64-llvm 15) mingw-w64-clang-x86_64-llvm-libs 16) mingw-w64-clang-x86_64-llvm-openmp 17) mingw-w64-clang-x86_64-make 18) mingw-w64-clang-x86_64-pkgconf 19) mingw-w64-clang-x86_64-tools-git 20) mingw-w64-clang-x86_64-winpthreads-git 21) mingw-w64-clang-x86_64-winstorecompat-git Enter a selection (default=all): resolving dependencies... looking for conflicting packages... Packages (44) mingw-w64-clang-x86_64-bzip2-1.0.8-3 mingw-w64-clang-x86_64-expat-2.6.2-1 mingw-w64-clang-x86_64-gettext-runtime-0.22.5-2 mingw-w64-clang-x86_64-libffi-3.4.6-1 mingw-w64-clang-x86_64-libiconv-1.17-4 mingw-w64-clang-x86_64-libsystre-1.0.1-5 mingw-w64-clang-x86_64-libtre-git-r177.07e66d0-2 mingw-w64-clang-x86_64-libxml2-2.12.9-1 mingw-w64-clang-x86_64-lua-5.4.7-2 mingw-w64-clang-x86_64-mpdecimal-4.0.0-1 mingw-w64-clang-x86_64-ncurses-6.4.20231217-1 mingw-w64-clang-x86_64-openssl-3.3.1-1 mingw-w64-clang-x86_64-python-3.11.9-1 mingw-w64-clang-x86_64-python-six-1.16.0-4 mingw-w64-clang-x86_64-readline-8.2.010-1 mingw-w64-clang-x86_64-sqlite3-3.46.0-1 mingw-w64-clang-x86_64-tcl-8.6.13-1 mingw-w64-clang-x86_64-termcap-1.3.1-7 mingw-w64-clang-x86_64-tk-8.6.13-1 mingw-w64-clang-x86_64-tzdata-2024a-1 mingw-w64-clang-x86_64-xz-5.6.2-2 mingw-w64-clang-x86_64-zlib-1.3.1-1 mingw-w64-clang-x86_64-zstd-1.5.6-2 mingw-w64-clang-x86_64-clang-18.1.8-1 mingw-w64-clang-x86_64-clang-analyzer-18.1.8-1 mingw-w64-clang-x86_64-clang-libs-18.1.8-1 mingw-w64-clang-x86_64-clang-tools-extra-18.1.8-1 mingw-w64-clang-x86_64-compiler-rt-18.1.8-1 mingw-w64-clang-x86_64-crt-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-x86_64-headers-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-x86_64-libc++-18.1.8-1 mingw-w64-clang-x86_64-libmangle-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-x86_64-libunwind-18.1.8-1 mingw-w64-clang-x86_64-libwinpthread-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-x86_64-lld-18.1.8-1 mingw-w64-clang-x86_64-lldb-18.1.8-1 mingw-w64-clang-x86_64-llvm-18.1.8-1 mingw-w64-clang-x86_64-llvm-libs-18.1.8-1 mingw-w64-clang-x86_64-llvm-openmp-18.1.8-1 mingw-w64-clang-x86_64-make-4.4.1-2 mingw-w64-clang-x86_64-pkgconf-1~2.2.0-1 mingw-w64-clang-x86_64-tools-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-x86_64-winpthreads-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-x86_64-winstorecompat-git-12.0.0.r81.g90abf784a-1 Total Download Size: 234.37 MiB Total Installed Size: 1651.36 MiB :: Proceed with installation? [Y/n] Y :: Retrieving packages... mingw-w64-clang-x86_64-llvm-libs-18.1.8-1-any 26.0 MiB 14.7 MiB/s 00:02 [###################################################################] 100% mingw-w64-clang-x86_64-llvm-18.1.8-1-any 73.2 MiB 17.7 MiB/s 00:04 [###################################################################] 100% mingw-w64-clang-x86_64-clang-libs-18.1.8-1-any 20.8 MiB 4.82 MiB/s 00:04 [###################################################################] 100% mingw-w64-clang-x86_64-python-3.11.9-1-any 23.1 MiB 5.05 MiB/s 00:05 [###################################################################] 100% mingw-w64-clang-x86_64-openssl-3.3.1-1-any 7.0 MiB 11.8 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-x86_64-headers-git-12.0.0.r81.g90abf784a-1-any 6.0 MiB 7.86 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-x86_64-lldb-18.1.8-1-any 5.5 MiB 7.05 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-x86_64-clang-18.1.8-1-any 35.1 MiB 6.02 MiB/s 00:06 [###################################################################] 100% mingw-w64-clang-x86_64-clang-tools-extra-18.1.8-1-any 15.3 MiB 4.19 MiB/s 00:04 [###################################################################] 100% mingw-w64-clang-x86_64-lld-18.1.8-1-any 3.0 MiB 9.58 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-tcl-8.6.13-1-any 2.6 MiB 11.2 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-crt-git-12.0.0.r81.g90abf784a-1-any 2.5 MiB 15.8 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-tk-8.6.13-1-any 2020.4 KiB 17.9 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-sqlite3-3.46.0-1-any 1939.6 KiB 12.1 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-ncurses-6.4.20231217-1-any 1749.4 KiB 9.14 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libc++-18.1.8-1-any 1552.2 KiB 7.47 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libxml2-2.12.9-1-any 1071.9 KiB 8.37 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-compiler-rt-18.1.8-1-any 877.6 KiB 6.12 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libiconv-1.17-4-any 715.2 KiB 4.99 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-xz-5.6.2-2-any 764.7 KiB 3.99 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-zstd-1.5.6-2-any 561.8 KiB 3.19 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-llvm-openmp-18.1.8-1-any 504.5 KiB 2.88 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-readline-8.2.010-1-any 408.2 KiB 2.32 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-lua-5.4.7-2-any 335.6 KiB 1963 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-tools-git-12.0.0.r81.g90abf784a-1-any 307.0 KiB 2.40 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-gettext-runtime-0.22.5-2-any 302.5 KiB 2.11 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-tzdata-2024a-1-any 227.2 KiB 2.85 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-expat-2.6.2-1-any 169.7 KiB 1824 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-mpdecimal-4.0.0-1-any 146.5 KiB 1332 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-make-4.4.1-2-any 137.5 KiB 732 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-clang-analyzer-18.1.8-1-any 121.8 KiB 597 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-zlib-1.3.1-1-any 93.9 KiB 751 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-bzip2-1.0.8-3-any 85.9 KiB 687 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-pkgconf-1~2.2.0-1-any 84.8 KiB 678 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libtre-git-r177.07e66d0-2-any 83.0 KiB 532 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libunwind-18.1.8-1-any 50.1 KiB 533 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libffi-3.4.6-1-any 43.7 KiB 280 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-winpthreads-git-12.0.0.r81.g90abf784a-1-any 37.3 KiB 239 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libwinpthread-git-12.0.0.r81.g90abf784a-1-any 36.9 KiB 238 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-termcap-1.3.1-7-any 28.4 KiB 261 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-winstorecompat-git-12.0.0.r81.g90abf784a-1-any 27.8 KiB 253 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-python-six-1.16.0-4-any 27.6 KiB 135 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libsystre-1.0.1-5-any 11.5 KiB 105 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-x86_64-libmangle-git-12.0.0.r81.g90abf784a-1-any 20.1 KiB 99.2 KiB/s 00:00 [###################################################################] 100% Total (44/44) 234.4 MiB 30.1 MiB/s 00:08 [###################################################################] 100% (44/44) checking keys in keyring [###################################################################] 100% (44/44) checking package integrity [###################################################################] 100% (44/44) loading package files [###################################################################] 100% (44/44) checking for file conflicts [###################################################################] 100% (44/44) checking available disk space [###################################################################] 100% :: Processing package changes... ( 1/44) installing mingw-w64-clang-x86_64-libunwind [###################################################################] 100% ( 2/44) installing mingw-w64-clang-x86_64-libc++ [###################################################################] 100% ( 3/44) installing mingw-w64-clang-x86_64-libffi [###################################################################] 100% ( 4/44) installing mingw-w64-clang-x86_64-libiconv [###################################################################] 100% ( 5/44) installing mingw-w64-clang-x86_64-gettext-runtime [###################################################################] 100% ( 6/44) installing mingw-w64-clang-x86_64-xz [###################################################################] 100% ( 7/44) installing mingw-w64-clang-x86_64-zlib [###################################################################] 100% ( 8/44) installing mingw-w64-clang-x86_64-libxml2 [###################################################################] 100% Optional dependencies for mingw-w64-clang-x86_64-libxml2 mingw-w64-clang-x86_64-python: Python bindings [pending] ( 9/44) installing mingw-w64-clang-x86_64-zstd [###################################################################] 100% (10/44) installing mingw-w64-clang-x86_64-llvm-libs [###################################################################] 100% (11/44) installing mingw-w64-clang-x86_64-llvm [###################################################################] 100% (12/44) installing mingw-w64-clang-x86_64-clang-libs [###################################################################] 100% (13/44) installing mingw-w64-clang-x86_64-compiler-rt [###################################################################] 100% (14/44) installing mingw-w64-clang-x86_64-headers-git [###################################################################] 100% (15/44) installing mingw-w64-clang-x86_64-crt-git [###################################################################] 100% (16/44) installing mingw-w64-clang-x86_64-lld [###################################################################] 100% (17/44) installing mingw-w64-clang-x86_64-libwinpthread-git [###################################################################] 100% (18/44) installing mingw-w64-clang-x86_64-winpthreads-git [###################################################################] 100% (19/44) installing mingw-w64-clang-x86_64-clang [###################################################################] 100% (20/44) installing mingw-w64-clang-x86_64-expat [###################################################################] 100% (21/44) installing mingw-w64-clang-x86_64-bzip2 [###################################################################] 100% (22/44) installing mingw-w64-clang-x86_64-mpdecimal [###################################################################] 100% (23/44) installing mingw-w64-clang-x86_64-libtre-git [###################################################################] 100% (24/44) installing mingw-w64-clang-x86_64-libsystre [###################################################################] 100% (25/44) installing mingw-w64-clang-x86_64-ncurses [###################################################################] 100% (26/44) installing mingw-w64-clang-x86_64-openssl [###################################################################] 100% Optional dependencies for mingw-w64-clang-x86_64-openssl mingw-w64-clang-x86_64-ca-certificates (27/44) installing mingw-w64-clang-x86_64-termcap [###################################################################] 100% (28/44) installing mingw-w64-clang-x86_64-readline [###################################################################] 100% (29/44) installing mingw-w64-clang-x86_64-tcl [###################################################################] 100% (30/44) installing mingw-w64-clang-x86_64-sqlite3 [###################################################################] 100% (31/44) installing mingw-w64-clang-x86_64-tk [###################################################################] 100% (32/44) installing mingw-w64-clang-x86_64-tzdata [###################################################################] 100% (33/44) installing mingw-w64-clang-x86_64-python [###################################################################] 100% (34/44) installing mingw-w64-clang-x86_64-clang-analyzer [###################################################################] 100% (35/44) installing mingw-w64-clang-x86_64-clang-tools-extra [###################################################################] 100% (36/44) installing mingw-w64-clang-x86_64-libmangle-git [###################################################################] 100% (37/44) installing mingw-w64-clang-x86_64-lua [###################################################################] 100% (38/44) installing mingw-w64-clang-x86_64-python-six [###################################################################] 100% (39/44) installing mingw-w64-clang-x86_64-lldb [###################################################################] 100% (40/44) installing mingw-w64-clang-x86_64-llvm-openmp [###################################################################] 100% (41/44) installing mingw-w64-clang-x86_64-make [###################################################################] 100% (42/44) installing mingw-w64-clang-x86_64-pkgconf [###################################################################] 100% (43/44) installing mingw-w64-clang-x86_64-tools-git [###################################################################] 100% (44/44) installing mingw-w64-clang-x86_64-winstorecompat-git [###################################################################] 100% Administrator@VM-WIN10 MSYS ~ # mingw-w64-clang-x86_64-arm-none-eabi-toolchain pacman -S --needed mingw-w64-clang-x86_64-arm-none-eabi-toolchain mingw-w64-clang-x86_64-avr-toolchain pacman -S --needed mingw-w64-clang-x86_64-avr-toolchain mingw-w64-clang-x86_64-riscv64-unknown-elf-toolchain pacman -S --needed mingw-w64-clang-x86_64-riscv64-unknown-elf-toolchain clangarm64 mingw-w64-clang-aarch64-toolchain Administrator@VM-WIN10 MSYS ~ # pacman -S --needed mingw-w64-clang-aarch64-toolchain :: There are 21 members in group mingw-w64-clang-aarch64-toolchain: :: Repository clangarm64 1) mingw-w64-clang-aarch64-clang 2) mingw-w64-clang-aarch64-clang-analyzer 3) mingw-w64-clang-aarch64-clang-libs 4) mingw-w64-clang-aarch64-clang-tools-extra 5) mingw-w64-clang-aarch64-compiler-rt 6) mingw-w64-clang-aarch64-crt-git 7) mingw-w64-clang-aarch64-headers-git 8) mingw-w64-clang-aarch64-libc++ 9) mingw-w64-clang-aarch64-libmangle-git 10) mingw-w64-clang-aarch64-libunwind 11) mingw-w64-clang-aarch64-libwinpthread-git 12) mingw-w64-clang-aarch64-lld 13) mingw-w64-clang-aarch64-lldb 14) mingw-w64-clang-aarch64-llvm 15) mingw-w64-clang-aarch64-llvm-libs 16) mingw-w64-clang-aarch64-llvm-openmp 17) mingw-w64-clang-aarch64-make 18) mingw-w64-clang-aarch64-pkgconf 19) mingw-w64-clang-aarch64-tools-git 20) mingw-w64-clang-aarch64-winpthreads-git 21) mingw-w64-clang-aarch64-winstorecompat-git Enter a selection (default=all): resolving dependencies... looking for conflicting packages... Packages (44) mingw-w64-clang-aarch64-bzip2-1.0.8-3 mingw-w64-clang-aarch64-expat-2.6.2-1 mingw-w64-clang-aarch64-gettext-runtime-0.22.5-2 mingw-w64-clang-aarch64-libffi-3.4.6-1 mingw-w64-clang-aarch64-libiconv-1.17-4 mingw-w64-clang-aarch64-libsystre-1.0.1-5 mingw-w64-clang-aarch64-libtre-git-r177.07e66d0-2 mingw-w64-clang-aarch64-libxml2-2.12.9-1 mingw-w64-clang-aarch64-lua-5.4.7-2 mingw-w64-clang-aarch64-mpdecimal-4.0.0-1 mingw-w64-clang-aarch64-ncurses-6.4.20231217-1 mingw-w64-clang-aarch64-openssl-3.3.1-1 mingw-w64-clang-aarch64-python-3.11.9-1 mingw-w64-clang-aarch64-python-six-1.16.0-4 mingw-w64-clang-aarch64-readline-8.2.010-1 mingw-w64-clang-aarch64-sqlite3-3.46.0-1 mingw-w64-clang-aarch64-tcl-8.6.13-1 mingw-w64-clang-aarch64-termcap-1.3.1-7 mingw-w64-clang-aarch64-tk-8.6.13-1 mingw-w64-clang-aarch64-tzdata-2024a-1 mingw-w64-clang-aarch64-xz-5.6.2-2 mingw-w64-clang-aarch64-zlib-1.3.1-1 mingw-w64-clang-aarch64-zstd-1.5.6-2 mingw-w64-clang-aarch64-clang-18.1.8-1 mingw-w64-clang-aarch64-clang-analyzer-18.1.8-1 mingw-w64-clang-aarch64-clang-libs-18.1.8-1 mingw-w64-clang-aarch64-clang-tools-extra-18.1.8-1 mingw-w64-clang-aarch64-compiler-rt-18.1.8-1 mingw-w64-clang-aarch64-crt-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-aarch64-headers-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-aarch64-libc++-18.1.8-1 mingw-w64-clang-aarch64-libmangle-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-aarch64-libunwind-18.1.8-1 mingw-w64-clang-aarch64-libwinpthread-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-aarch64-lld-18.1.8-1 mingw-w64-clang-aarch64-lldb-18.1.8-1 mingw-w64-clang-aarch64-llvm-18.1.8-1 mingw-w64-clang-aarch64-llvm-libs-18.1.8-1 mingw-w64-clang-aarch64-llvm-openmp-18.1.8-1 mingw-w64-clang-aarch64-make-4.4.1-2 mingw-w64-clang-aarch64-pkgconf-1~2.2.0-1 mingw-w64-clang-aarch64-tools-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-aarch64-winpthreads-git-12.0.0.r81.g90abf784a-1 mingw-w64-clang-aarch64-winstorecompat-git-12.0.0.r81.g90abf784a-1 Total Download Size: 222.18 MiB Total Installed Size: 1534.37 MiB :: Proceed with installation? [Y/n] Y :: Retrieving packages... mingw-w64-clang-aarch64-clang-18.1.8-1-any 33.7 MiB 17.5 MiB/s 00:02 [###################################################################] 100% mingw-w64-clang-aarch64-llvm-libs-18.1.8-1-any 24.2 MiB 9.85 MiB/s 00:02 [###################################################################] 100% mingw-w64-clang-aarch64-clang-libs-18.1.8-1-any 19.2 MiB 5.35 MiB/s 00:04 [###################################################################] 100% mingw-w64-clang-aarch64-openssl-3.3.1-1-any 7.3 MiB 5.45 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-aarch64-llvm-18.1.8-1-any 68.9 MiB 14.0 MiB/s 00:05 [###################################################################] 100% mingw-w64-clang-aarch64-headers-git-12.0.0.r81.g90abf784a-1-any 6.0 MiB 6.65 MiB/s 00:01 [###################################################################] 100% mingw-w64-clang-aarch64-python-3.11.9-1-any 23.0 MiB 4.37 MiB/s 00:05 [###################################################################] 100% mingw-w64-clang-aarch64-clang-tools-extra-18.1.8-1-any 14.7 MiB 5.11 MiB/s 00:03 [###################################################################] 100% mingw-w64-clang-aarch64-lldb-18.1.8-1-any 5.1 MiB 10.3 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-lld-18.1.8-1-any 2.7 MiB 13.4 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-tcl-8.6.13-1-any 2.6 MiB 16.6 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-tk-8.6.13-1-any 1985.3 KiB 9.50 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-sqlite3-3.46.0-1-any 1846.8 KiB 9.59 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-crt-git-12.0.0.r81.g90abf784a-1-any 1777.0 KiB 7.92 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-ncurses-6.4.20231217-1-any 1734.9 KiB 9.06 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libc++-18.1.8-1-any 1506.6 KiB 10.5 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libxml2-2.12.9-1-any 1063.7 KiB 6.66 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-xz-5.6.2-2-any 758.3 KiB 5.97 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libiconv-1.17-4-any 713.9 KiB 5.58 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-zstd-1.5.6-2-any 484.0 KiB 3.78 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-llvm-openmp-18.1.8-1-any 452.0 KiB 2.57 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-readline-8.2.010-1-any 417.7 KiB 2.36 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-lua-5.4.7-2-any 325.7 KiB 1589 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-tools-git-12.0.0.r81.g90abf784a-1-any 285.3 KiB 1413 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-gettext-runtime-0.22.5-2-any 285.3 KiB 2.56 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-tzdata-2024a-1-any 228.6 KiB 2.38 MiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-expat-2.6.2-1-any 153.8 KiB 1398 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-mpdecimal-4.0.0-1-any 144.7 KiB 927 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-make-4.4.1-2-any 132.3 KiB 938 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-clang-analyzer-18.1.8-1-any 121.8 KiB 870 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-zlib-1.3.1-1-any 94.2 KiB 856 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-pkgconf-1~2.2.0-1-any 82.3 KiB 748 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-bzip2-1.0.8-3-any 81.7 KiB 403 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libtre-git-r177.07e66d0-2-any 79.2 KiB 390 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-compiler-rt-18.1.8-1-any 75.6 KiB 404 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libunwind-18.1.8-1-any 49.8 KiB 453 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libffi-3.4.6-1-any 46.0 KiB 267 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-winpthreads-git-12.0.0.r81.g90abf784a-1-any 39.5 KiB 280 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libwinpthread-git-12.0.0.r81.g90abf784a-1-any 35.7 KiB 190 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-winstorecompat-git-12.0.0.r81.g90abf784a-1-any 28.4 KiB 258 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-python-six-1.16.0-4-any 28.3 KiB 259 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-termcap-1.3.1-7-any 27.7 KiB 178 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libsystre-1.0.1-5-any 11.7 KiB 93.8 KiB/s 00:00 [###################################################################] 100% mingw-w64-clang-aarch64-libmangle-git-12.0.0.r81.g90abf784a-1-any 20.7 KiB 111 KiB/s 00:00 [###################################################################] 100% Total (44/44) 222.2 MiB 29.7 MiB/s 00:07 [###################################################################] 100% (44/44) checking keys in keyring [###################################################################] 100% (44/44) checking package integrity [###################################################################] 100% (44/44) loading package files [###################################################################] 100% (44/44) checking for file conflicts [###################################################################] 100% (44/44) checking available disk space [###################################################################] 100% :: Processing package changes... ( 1/44) installing mingw-w64-clang-aarch64-libunwind [###################################################################] 100% ( 2/44) installing mingw-w64-clang-aarch64-libc++ [###################################################################] 100% ( 3/44) installing mingw-w64-clang-aarch64-libffi [###################################################################] 100% ( 4/44) installing mingw-w64-clang-aarch64-libiconv [###################################################################] 100% ( 5/44) installing mingw-w64-clang-aarch64-gettext-runtime [###################################################################] 100% ( 6/44) installing mingw-w64-clang-aarch64-xz [###################################################################] 100% ( 7/44) installing mingw-w64-clang-aarch64-zlib [###################################################################] 100% ( 8/44) installing mingw-w64-clang-aarch64-libxml2 [###################################################################] 100% /tmp/alpm_CunSFE/.INSTALL: line 6: clangarm64/bin/xmlcatalog.exe: cannot execute binary file: Exec format error error: command failed to execute correctly Optional dependencies for mingw-w64-clang-aarch64-libxml2 mingw-w64-clang-aarch64-python: Python bindings [pending] ( 9/44) installing mingw-w64-clang-aarch64-zstd [###################################################################] 100% (10/44) installing mingw-w64-clang-aarch64-llvm-libs [###################################################################] 100% (11/44) installing mingw-w64-clang-aarch64-llvm [###################################################################] 100% (12/44) installing mingw-w64-clang-aarch64-clang-libs [###################################################################] 100% (13/44) installing mingw-w64-clang-aarch64-compiler-rt [###################################################################] 100% (14/44) installing mingw-w64-clang-aarch64-headers-git [###################################################################] 100% (15/44) installing mingw-w64-clang-aarch64-crt-git [###################################################################] 100% (16/44) installing mingw-w64-clang-aarch64-lld [###################################################################] 100% (17/44) installing mingw-w64-clang-aarch64-libwinpthread-git [###################################################################] 100% (18/44) installing mingw-w64-clang-aarch64-winpthreads-git [###################################################################] 100% (19/44) installing mingw-w64-clang-aarch64-clang [###################################################################] 100% (20/44) installing mingw-w64-clang-aarch64-expat [###################################################################] 100% (21/44) installing mingw-w64-clang-aarch64-bzip2 [###################################################################] 100% (22/44) installing mingw-w64-clang-aarch64-mpdecimal [###################################################################] 100% (23/44) installing mingw-w64-clang-aarch64-libtre-git [###################################################################] 100% (24/44) installing mingw-w64-clang-aarch64-libsystre [###################################################################] 100% (25/44) installing mingw-w64-clang-aarch64-ncurses [###################################################################] 100% (26/44) installing mingw-w64-clang-aarch64-openssl [###################################################################] 100% Optional dependencies for mingw-w64-clang-aarch64-openssl mingw-w64-clang-aarch64-ca-certificates (27/44) installing mingw-w64-clang-aarch64-termcap [###################################################################] 100% (28/44) installing mingw-w64-clang-aarch64-readline [###################################################################] 100% (29/44) installing mingw-w64-clang-aarch64-tcl [###################################################################] 100% (30/44) installing mingw-w64-clang-aarch64-sqlite3 [###################################################################] 100% (31/44) installing mingw-w64-clang-aarch64-tk [###################################################################] 100% (32/44) installing mingw-w64-clang-aarch64-tzdata [###################################################################] 100% (33/44) installing mingw-w64-clang-aarch64-python [###################################################################] 100% (34/44) installing mingw-w64-clang-aarch64-clang-analyzer [###################################################################] 100% (35/44) installing mingw-w64-clang-aarch64-clang-tools-extra [###################################################################] 100% (36/44) installing mingw-w64-clang-aarch64-libmangle-git [###################################################################] 100% (37/44) installing mingw-w64-clang-aarch64-lua [###################################################################] 100% (38/44) installing mingw-w64-clang-aarch64-python-six [###################################################################] 100% (39/44) installing mingw-w64-clang-aarch64-lldb [###################################################################] 100% (40/44) installing mingw-w64-clang-aarch64-llvm-openmp [###################################################################] 100% (41/44) installing mingw-w64-clang-aarch64-make [###################################################################] 100% (42/44) installing mingw-w64-clang-aarch64-pkgconf [###################################################################] 100% (43/44) installing mingw-w64-clang-aarch64-tools-git [###################################################################] 100% (44/44) installing mingw-w64-clang-aarch64-winstorecompat-git [###################################################################] 100% Administrator@VM-WIN10 MSYS ~ # mingw-w64-clang-aarch64-arm-none-eabi-toolchain pacman -S --needed mingw-w64-clang-aarch64-arm-none-eabi-toolchain mingw-w64-clang-aarch64-avr-toolchain pacman -S --needed mingw-w64-clang-aarch64-avr-toolchain mingw-w64-clang-aarch64-riscv64-unknown-elf-toolchain pacman -S --needed mingw-w64-clang-aarch64-riscv64-unknown-elf-toolchain 配置环境变量 配置环境变量的目的是可在 windows 命令行直接使用 gcc 指令,同时可配合其他软件使用,如 VSCode、Notepad++ 等,可搭建一个简单的 IDE 。 我这里选择安装的是 mingw-w64-ucrt-x86_64-toolchain 编译器,安装目录在 D:\nosetup-tools\msys64\ucrt64\,需要在 Windows 系统环境变量 PATH 中添加如下路径 D:\nosetup-tools\msys64\ucrt64\bin 那么为了方便开发过程中对环境变量的管理,这里我不直接在 PATH 变量中直接添加路径,而是新建一个 devenv 变量,这个变量专门存放开发工具的路径环境,然后再将 devenv 变量添加到 PATH 中,最终与直接添加效果一样,但更好管理。
2024年09月06日
2 阅读
0 评论
0 点赞