1. 问题描述函数
使用RealEvo-IDE(如下简称IDE)开发程序时,误操做输入错误的函数名称时,编译器不会报错,输入错误的函数名示例代码如程序清单 1.1所示。测试
程序清单 1.1 示例代码开发
#include <stdio.h> int main (int argc, char **argv) { print("Hello World!\n"); return (0); }
控制台输出编译结果如图 1.1所示。编译器
图 1.1 编译结果虚拟机
在虚拟机上运行该示例程序,运行结果如图 1.2所示。io
图 1.2 运行结果编译
2. 问题分析class
由图 1.1可知IDE附带的编译器默认使用的参数为:gcc
-nostdlib -Wl,-shared -fPIC -shared
其中参数“-Shared”,表示生成共享目标文件,一般在创建共享库时用到。连接器能够使用这种文件跟其它的可重定位文件和共享目标文件连接,产生新的目标文件。gc
3. 示例验证
在Linux环境下,测试用例如程序清单 1.1所示。
经过“gcc”编译器编译,添加“-Shared”参数编译时会报警告,编译结果如图 3.1所示。
图3.1 使用shared参数编译结果
不使用“-Shared”参数编译会出现错误,编译结果如图 3.2所示。
图3.2 不使用shared参数编译结果