今天在codeblocks中编译写好的坦克大战的代码,结果报了这个错误:123undefined reference to 'gxx_personality_sj0'undefined reference to '_Unwind_SjLj_Resume'undefined reference to '_Unwind_SjLj_Register'
看不太懂,于是上网搜了一下,这是编译器的问题,可能是编译和链接不一致导致的。
于是自己好好检查了一遍文件结构,在src文件当中有一个CommonClass.a压缩文件,
里面是一个CommonClass.o对象文件,相当于一个编译的中间文件,将这样的多个对象文件
连接在一个就可以构成我们的可执行文件。
也就是说,接下来我们rebuild要做的工作是先将我们自己写好的cpp文件编译成一系列的obj文件,
然后再整合成为exe文件,但是当初编译它里面自带的obj文件的编译器和我们现在链接的编译器
可能不同,于是我们换了一个版本的gcc,再次进行编译,这次成功了。
所以导致这个错误的原因就在于编译器的问题,可能是链接和编译版本不一致导致的。