当前位置: 技术问答>linux和unix
gcc编译出现一个奇怪的问题,各位帮忙看看
来源: 互联网 发布时间:2015-11-23
本文导语: 刚开始居然是这些出错信息(节录): /usr/include/c++/3.2.2/bits/stl_list.h: In function `void TimedWait(...)': /usr/include/c++/3.2.2/bits/stl_list.h:77: parse error before `{' token /usr/include/c++/3.2.2/bits/stl_list.h:85: parse error before `;' token /usr/i...
刚开始居然是这些出错信息(节录):
/usr/include/c++/3.2.2/bits/stl_list.h: In function `void TimedWait(...)':
/usr/include/c++/3.2.2/bits/stl_list.h:77: parse error before `{' token
/usr/include/c++/3.2.2/bits/stl_list.h:85: parse error before `;' token
/usr/include/c++/3.2.2/bits/stl_list.h:87: syntax error before `*' token
把程序中 #include 的位置动了一下,结果是一些不可理谕的出错信息,其中甚至是说一些我程序中根本没有出现过的变量未定义.
这可怎么办?
/usr/include/c++/3.2.2/bits/stl_list.h: In function `void TimedWait(...)':
/usr/include/c++/3.2.2/bits/stl_list.h:77: parse error before `{' token
/usr/include/c++/3.2.2/bits/stl_list.h:85: parse error before `;' token
/usr/include/c++/3.2.2/bits/stl_list.h:87: syntax error before `*' token
把程序中 #include 的位置动了一下,结果是一些不可理谕的出错信息,其中甚至是说一些我程序中根本没有出现过的变量未定义.
这可怎么办?
|
一般include头文件,是把标准头文件放在前面,自己定义的头文件放在后面。
并且在自己定义的头文件的末尾少了一个;(分号)。
指的是,有时候在头文件中声明一个class的时候,如:
class A
{
};
该类声明后会忘记写;(分号)
出错信息感觉都是语法错误,仔细检查一下自己的文件。
并且在自己定义的头文件的末尾少了一个;(分号)。
指的是,有时候在头文件中声明一个class的时候,如:
class A
{
};
该类声明后会忘记写;(分号)
出错信息感觉都是语法错误,仔细检查一下自己的文件。
|
对代码使用预处理 gcc -E ...
观察生成的中间的代码,就会明白的。
观察生成的中间的代码,就会明白的。
|
在include头文件的时候,可能是自己定义的头文件放在了标准头文件的前面,并且在自己定义的头文件的末尾少了一个;(分号)。