# process.gcc 库模块帮助文档

## process 成员列表 <a id="process" href="#process">&#x23;</a>

### process.gcc() <a id="process.gcc" href="#process.gcc">&#x23;</a>
创建 GCC 编译环境，  
可选用参数指定工作目录，默认为"/"（应用程序根目录）

[返回对象:processGccObject](#processGccObject)

## process.gcc 成员列表 <a id="process.gcc" href="#process.gcc">&#x23;</a>

用于创建或安装 GCC 编译环境。  

此支持库可自动配置 gcc 运行时环境变量，  
并且可自动检测 git bash 位置并添加到运行时环境变量。  
如果事先导入了 process.git.bash 则支持自动安装 git bash。  

用法请参考范例 » 调用其他语言 » GCC  

此扩展库所有函数执行命令的第一个参数如果是:  
"g++","make" 或其他 GCC 同目录下以 ".exe" 结尾的文件名，  
则执行该程序而非默认的 gcc.exe

### process.gcc.check() <a id="process.gcc.check" href="#process.gcc.check">&#x23;</a>
如果之前未调用 check32 或 check64 方法，搜索并返回  32 位 gcc.exe 路径，自动设置 GCC 环境变量。  
如果找不到 gcc.exe，自动安装 Mingw-w64 并返回 gcc.exe 路径。  
失败返回 null

### process.gcc.check32() <a id="process.gcc.check32" href="#process.gcc.check32">&#x23;</a>
搜索并返回 32 位 gcc.exe 路径，自动设置 GCC 环境变量。  
如果找不到 gcc.exe，自动安装 Mingw-w64 并返回 gcc.exe 路径。  
失败返回 null

### process.gcc.check64() <a id="process.gcc.check64" href="#process.gcc.check64">&#x23;</a>
搜索并返回 64 位 gcc.exe 路径，自动设置 GCC 环境变量。  
如果找不到 gcc.exe，自动安装 Mingw-w64 并返回 gcc.exe 路径。  
失败返回 null

### process.gcc.get() <a id="process.gcc.get" href="#process.gcc.get">&#x23;</a>
可用一个或多个字符串参数指定命令行参数，  
也可以用在一个字符串参数中用空格分隔多个参数。  

执行成功返回进程标准输出。  
失败返回 null,错误信息

### process.gcc.install() <a id="process.gcc.install" href="#process.gcc.install">&#x23;</a>
安装 Mingw-w64 32 位程序编译工具。  
可选在参数中指定 Mingw-w64 离线安装包下载地址

### process.gcc.install64() <a id="process.gcc.install64" href="#process.gcc.install64">&#x23;</a>
安装 Mingw-w64 64 位程序编译工具。  
可选在参数中指定 Mingw-w64 离线安装包下载地址

### process.gcc.match(模式串,..) <a id="process.gcc.match" href="#process.gcc.match">&#x23;</a>
执行 GCC 命令（第一个参数可以改为 g++）。  
自参数 @2 开始可用一个或多个字符串参数指定命令行参数，  
也可以用在一个字符串参数中用空格分隔多个参数。  

执行成功使用参数 @1 指定的模式串匹配进程查找标准输出并返回结果。  
失败返回 null,错误信息  

示例：  
process.gcc.match( "__STDC_VERSION__\s+(\d+)","-dM -E -x c NUL")  
process.gcc.match( "__cplusplus\s+(\d+)","-dM -E -x c++ NUL")

### process.gcc.path <a id="process.gcc.path" href="#process.gcc.path">&#x23;</a>
调用 check 或 check64 函数并返回 true 以后此路径返回 gcc.exe 路径

## processGccObject 成员列表 <a id="processGccObject" href="#processGccObject">&#x23;</a>

### processGccObject.* <a id="processGccObject.any" href="#processGccObject.any">&#x23;</a>
如果键值都是字符串：  
当键名只包含字母与数字，在 GCC 工作目录生成同名 ".c" 文件。  
如果键名已包含后缀名，则不添加".c" 后缀。  
含后缀名时请使用下标操作符赋值。  

在 aardio 中块注释可以赋值为字符串，首尾星号数目要相同

### processGccObject.exec(命令参数) <a id="processGccObject.exec" href="#processGccObject.exec">&#x23;</a>

```aardio
processGccObject.exec("main.c -o main.dll -shared -s -municode -m32 -O2 -static -lgcc -lstdc++")
```

### processGccObject.popen() <a id="processGccObject.popen" href="#processGccObject.popen">&#x23;</a>
[返回对象:processPopenObject](https://www.aardio.com/zh-cn/docs/library-reference/process/popen.html#processPopenObject)

### processGccObject.popen(命令参数) <a id="processGccObject.popen" href="#processGccObject.popen">&#x23;</a>

```aardio
processGccObject.popen("main.c -o main.dll -shared -s -municode -m32 -O2 -static -lgcc -lstdc++")
```

