使用 GCC 在 Engee 中编译 C 代码¶
在Engee平台的内置工具中,还有用于处理生成代码的工具。在本例中,我们将学习如何编译代码并从 Engee 脚本中调用它。
您可以从 documentation 了解在 Engee 环境中执行外部程序的更多信息。
Engee 中的编译工具¶
Engee在Unix兼容内核上执行模型和程序,并使用Engee**特有的库和工具。操作系统内核提供了足够的第三方工具,允许创建特定的定制软件和模型开发与测试路径。
在Engee中,工程师可以使用标准 Unix 内核中的许多工具,例如
*gcc
- C 代码编译器
*g++
- C++ 代码编译器
除此以外,通常还有许多额外的实用程序和不同编程语言(python、perl......)的解释器。
让我们执行下面的复选框,找出gcc
编译器的版本(同时检查其可操作性):
;gcc -v
在创建本例时,Engee 系统允许gcc
编译链使用12.2.0
版本的 ,不过我们更需要这条命令来进行调试--以确保编译器已安装并正常运行。
在 Engee 中编译代码¶
为了以防万一,让我们进入本示例所在的同一文件夹:
cd( @__DIR__ )
在本演示中,我们将运行一个简单的程序,它只会打印一条信息。
以下是我们要编译和运行的程序代码:
<br
#include <stdio.h> `C
int main (void)
{
printf ("Hello, world!\n");
return 0;
}
要从hello.c
文件中的源代码获取可执行文件,只需运行以下命令即可:
;gcc -Wall hello.c -o hello
结果,在本示例的工作文件夹中创建了一个可执行文件hello
,可以通过命令行参数或脚本运行该文件。
执行编译后的代码¶
如何在脚本或命令行中获取该代码的输出结果?第一种方法是在shell
中执行命令。这样可以获得输出结果,但不能将其放入变量中。
;./hello
run
命令的工作原理类似,但区别在于它创建了一个进程,可以控制进程的执行。
run( `./hello` )
如果要将编译文件的结果放入变量,可以使用read
或readchomp
命令(该命令的变体不需要换行):
c = readchomp( `./hello` )
您的代码可以通过参数字符串接受参数,参数字符串是被调用命令的一部分。这样,只有序列化(文本)数据才能传入代码。
另一种方法是使用-shared
关键字编译代码,从中创建一个函数库,并使用@ccall
将任何二进制参数传递到函数库中。
。
最后,通过文件存储中的文件交换数据虽然不是技术上最先进的选择,但也是非常可靠的选择。
结论¶
在Engee中,工程师既可以使用数据检查器、交互式脚本和建模画布等高级工具,也可以使用最低级别的操作系统内核命令。