在现代软件开发中,GCC(GNU Compiler Collection)作为一款广泛使用的编译器工具链,是构建高性能、可移植的软件系统不可或缺的一部分。GCC 提供了 C、C++、Java、Fortran 等多种语言的编译支持,其跨平台特性使其成为 Linux 系统开发中首选的编译工具。
随着 Linux 系统的不断演进,GCC 也在持续更新,以适应新的编程语言、优化编译性能,并支持更多的硬件架构。
也是因为这些,掌握如何在 Linux 系统上安装和配置 GCC 是开发者的一项重要技能。本文将详细介绍在 Linux 系统中安装 GCC 的多种方法,涵盖从基础安装到高级配置的全过程,帮助开发者快速上手并充分利用 GCC 的功能。 一、安装 GCC 的基本方法
1.1使用包管理器安装 对于大多数 Linux 发行版(如 Ubuntu、Debian、Fedora、CentOS 等),可以使用包管理器直接安装 GCC。
下面呢是几种常见发行版的安装方法: - Ubuntu/Debian ```bash sudo apt update sudo apt install gcc ``` - Fedora ```bash sudo dnf install gcc ``` - CentOS/RHEL ```bash sudo yum install gcc ``` - Arch Linux ```bash sudo pacman -S gcc ``` 这些命令会安装 GCC 的核心编译器,包括 C、C++、Fortran 等语言的支持。安装完成后,可以通过以下命令验证安装是否成功: ```bash gcc --version ```
1.2使用源码编译安装 对于需要定制编译器或特定版本的用户,可以从源码编译安装 GCC。
下面呢是基本步骤: 1.下载 GCC 源码包: ```bash wget https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz ``` 2.解压源码包: ```bash tar -xvf gcc-11.2.0.tar.gz ``` 3.进入源码目录: ```bash cd gcc-11.2.0 ``` 4.配置编译选项(可选): ```bash ./configure --prefix=/usr/local/gcc --enable-languages=c,c++ --enable-threads=posix --enable-checking=release ``` 5.编译安装: ```bash make -j4 sudo make install ``` 6.验证安装: ```bash gcc --version ``` 安装完成后,可以通过 `/usr/local/gcc/bin/` 路径访问编译器。 二、配置 GCC 的环境变量和路径 安装 GCC 后,需要配置其环境变量,以便在终端中直接调用编译器。
下面呢是常见的配置方法:
2.1配置 PATH 环境变量 在 Linux 系统中,可以通过修改 `/etc/environment` 或 `/etc/profile` 文件来设置 `PATH` 环境变量,确保 GCC 被优先调用。 - 方法一:修改 `/etc/profile` 打开文件: ```bash sudo nano /etc/profile ``` 在文件末尾添加以下内容: ```bash export PATH=/usr/local/gcc/bin:$PATH ``` - 方法二:使用 `export` 命令临时生效 在终端中运行: ```bash export PATH=/usr/local/gcc/bin:$PATH ```
2.2配置编译器路径和选项 在编译项目时,可以通过 `CC`、`CXX`、`FC` 等环境变量指定使用哪个编译器。例如: ```bash CC=gcc CXX=clang++ FC=gfortran ``` 这些变量可以在编译命令中使用,以确保使用指定的编译器。 三、高级配置与优化
1.1配置编译器选项 GCC 提供了丰富的编译选项,可以通过 `--enable-optimizations`、`--enable-checking` 等参数来优化编译性能。 - 启用检查: ```bash ./configure --enable-checking=release ``` - 启用优化: ```bash ./configure --enable-optimizations ``` - 启用多线程支持: ```bash ./configure --enable-threads=posix ``` 这些选项可以显著提升编译效率,尤其在处理大型项目时。
3.2配置编译器的编译器选项 在编译过程中,可以通过 `--std`、`-Wall`、`-Wextra` 等选项来启用更严格的编译检查。 - 启用所有警告: ```bash gcc -Wall -Wextra -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-but-define -Wno-unused-label -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-parameter -Wno-unused-label -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -Wno-unused-but-set-variable -Wno-unused-but-defined -