Eclipse Indigo CDT:功能无法解决

myk*_*myk 22 eclipse eclipse-cdt

这感觉很傻,但是从Ubuntu 10.04升级到10.11并从Eclipse Helios升级到Eclipse Indigo之后的某个时间......我遇到了以下问题:

问题描述:

我正在尝试在math.h中使用一个名为isinf()的函数,但问题也出现在像isnan()这样的问题上.
该程序使用make在eclipse中使用make和fine进行编译.
但是如果我在eclipse中打开程序文件,它会报告它无法解析isinf()函数调用.
如果我只是将程序内容插入到新项目和新源文件中,则会立即显示错误.
使用Eclipse Helios CDT在11.04下没有发生此问题

问题:

为什么这些错误仅在程序文件打开时报告,而在编译程序时不报告; 为什么未检测到的错误是从命令行运行的?
有解决方案/解决方法吗?

版本信息

Linux Ubuntu 10.11 64位
Eclipse CDT Indigo,Service Release 1,构建ID:20110916-0149
(也使用Eclipse EE Indigo - 如果有所不同)
GNU Make 3.81
gcc 4.6.1-9Ubuntu3

复制:

请在下面找到您需要复制的两个文件:

步骤0.验证Eclipse之外的一切正常
复制附加的源文件并使文件
创建目录,例如Mkdir FunTest
将源文件保存为'Test.cpp',将makefile保存为'makefile'
打开命令提示符并导航到目录例如FunTest
输入'
make'Enter./TestOut
程序响应"不是无限的"

步骤1.在Eclipse中创建项目
打开Eclipse
选择File | New | MakeFile Project with Existing Code
单击Browse - 导航到目录(FunTest)并单击ok
从Toolchain选择器中选择'Linux GCC'
单击Finish

步骤2.找到错误
单击Build All(Ctrl-B) - 项目构建没有错误
在项目资源管理器中打开项目以在目录中显示文件
双击文件"Test.cpp"
注意行旁边的错误图标测试无穷大
注意2错误消息:

Semantic error: Function _isinff could not be resolved 
Semantic error: Function _isinfl could not be resolved
Run Code Online (Sandbox Code Playgroud)

TEST.CPP:

include <math.h>

int main(int argc, char **argv)
{

int TestNum = 10;

if (isinf(TestNum) == 0)
    printf("Not infinite\n");


return 0;

}
Run Code Online (Sandbox Code Playgroud)

生成文件:

# Specify the compiler
CC = g++

# Specify the compiler flags
CFLAGS += -c

# Specify the files making up the application
SOURCES = Test.cpp
OBJECTS = $(SOURCES:.cpp=.o)
EXECUTABLE = TestOut

all: $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
    $(CC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@

.cpp.o:
    $(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@

install:
    @echo "Build complete!"
Run Code Online (Sandbox Code Playgroud)

小智 7

即使代码在Eclipse Indigo中编译得很好,我也遇到过类似的CDT报告错误问题.

项目>属性>设置>二进制解析器>"GNU Elf Parser"

帮助我的情况.我检查了"精灵解析器".


pru*_*nat 0

您的构建首选项中缺少 -lm 选项。项目->属性->设置->Miscleanous->其他(链接器)标志[]