前几天在优快云上看了一个关于宏的文章,自己在DEV-C++中改了一下,运行。。。。出现了错误。
程序内容如下:
#include<iostream>
using namespace std;
#define Enum2Str(e) #e
enum value{one,two,three};
void test(value v)
{
switch (v)
{
case one: cout<<Enum2Str("one")<<endl; break;
case two: cout<<Enum2Str("two")<<endl; break;
case three: cout<<Enum2Str("three")<<endl; break;
}
}
int main()
{
test(one);
system("pause");
return 0;
}
在第一次编译时先是被金山当作病毒杀掉了。
再次编译时出现了这么一句错误提示: ld returned 1 exit status。我不怎么明白这句是什么意思。于是发了帖,得到了解决,以前总是在乱猜。如猜这是不是跟宏有关还是跟初始化有关。
正确的是:ld 的意思是ld=dynamic linker/load,关编译连接程序的关键工具,程序编译成.o文件后,会有连接器将这些文件连接成.exe文件。在linux系统中是ld- linux.os*库,在执行时去寻找并连接相应的动态连接库。在VC中相当于link.exe连接器。
至于为什么被金山干掉,猜可能是编译器的问题或者是金山的报错。