我有索引器的问题。它批评了SOCKET在方法中的使用:
#ifndef TEST_H_
#define TEST_H_
#ifdef linux
typedef int SOCKET;
#endif
class Test {
public:
void test(const SOCKET src);
};
#endif /* TEST_H_ */
我的eclipse版本是:版本:Luna Service Release 2(4.4.2)Build id:20150219-0600
我的CDT是8.6.0.201502131403
来自索引器的消息:输入' SOCKET'无法解决
一些事实:
然而,代码将使用和不使用ifdef进行编译。但我想用ifdef解决索引问题。有什么想法吗?
此致 赖
答案 0 :(得分:0)
ifdef是否在此屏幕截图中显示为灰色:
如果是这样,那么CDT不知道定义了“linux”符号。要定义它,您可以选择一些选项,具体取决于您的设置。
托管制作意味着您让CDT为您创建makefile。
选项1:你是使用GCC的原生linux然后我怀疑出了问题,请提交一个bug。
选项2:您正在进行交叉编译,然后这是您项目/工作区的设置问题(不幸的是,此处需要更详细的信息)。
标准制作意味着您自己编写makefile(或其他一些工具)。
选项1:您尚未在Eclipse CDT中运行构建,因此CDT不知道您的构建设置是什么。 CDT分析正在运行的make的输出以确定应该是什么设置。
选项2:您在CDT中运行make,但是命令回显被抑制(@ on命令)。尝试在没有它的情况下运行make。
选项3:您需要告诉CDT有关已定义的符号。告诉CDT: