你的错误信息很怪。。。
如果我没说错的话,应该错在1.cpp中的main函数中的extern float S;
你在ham.cpp中extern float S;,说明S肯定是另一个文件的全局变量,而你压根没定义。
解决办法:
将1.cpp的main函数中extern float S去掉,并定义一个全局变量float S;
这样在我机器中编译运行成功。
main' : redefinition; different basic types
main函数重复定义,是不是你的ham.cpp中也有个main函数?