标签: eclipse-cdt

Eclipse C++编译警告问题

这里有一个代码来演示一个恼人的问题:

class A {
public:
    A():
        m_b(1),
        m_a(2)
        {}
private:
    int m_a;
    int m_b;
};
Run Code Online (Sandbox Code Playgroud)

这是Console视图上的输出:

make all 
Building file: ../test.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"test.d" -MT"test.d" -o"test.o" "../test.cpp"
../test.cpp: In constructor 'A::A()':
../test.cpp:9: warning: 'A::m_b' will be initialized after
../test.cpp:8: warning:   'int A::m_a'
../test.cpp:3: warning:   when initialized here
Finished building: ../test.cpp
Run Code Online (Sandbox Code Playgroud)

问题是在Problems视图中我会看到3个单独的警告(输出中包含警告字的行),而输出中确实有4行描述了一个问题.

有什么我想念的吗?

补充问题.也许这是Eclipse精神,但有一种方法可以像大多数IDE一样使Console视图可点击(例如Visual Studio,emacs ......)

谢谢迪马

c++ eclipse compilation eclipse-cdt

4
推荐指数
1
解决办法
3941
查看次数

Eclipse CDT“路径必须包含项目和资源名称”

我一直在用头撞砖墙,所以任何帮助将不胜感激:)

我创建了两个具有以下结构的项目。

  1. C:\ide\xxx\source 下有一个源文件夹
  2. C:\ide\xxx\build1 下有一个项目文件夹
  3. C:\ide\xxx\build2 下有一个项目文件夹
  4. build1 和 build2 都包含使用变量 MYBUILD_ROOT="C:\ide\xxx" 的链接文件夹 C:\ide\xxx\source。

build2 使用内部构建器编译得很好。然而,build1 甚至没有开始构建,因为它报告

> **** Rebuild of configuration Release for project CoreMarkTs1 ****
> 
> **** Internal Builder is used for build               **** 
> Build error
> Path must include project and resource
> name: /build1
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激。

eclipse eclipse-cdt build-error

4
推荐指数
1
解决办法
3399
查看次数

如何在 Linux 上使用 #ifdef _DEBUG?

我在 Linux C++ 上遇到 _DEBUG 宏问题。我尝试使用这样的东西:

#ifdef _DEBUG
cout << "Debug!" << endl;
#endif
Run Code Online (Sandbox Code Playgroud)

但是当我在IDE中选择“调试”时,它不起作用。然而它在 Windows 上运行。我在 Linux 上使用 Eclipse IDE 进行 C++ 编码。

c++ linux debugging eclipse-cdt

4
推荐指数
1
解决办法
1万
查看次数

自动格式化 - Eclipse C++

大家好,我试图阻止 Eclipse 中的自动格式化在末尾有 throw() 语句的函数之后缩进我的左大括号和右大括号。

例如

void function(std::string param) throw()
{

}
Run Code Online (Sandbox Code Playgroud)

自动格式化后将如下所示:

void function(std::string param) throw()
  {

  }
Run Code Online (Sandbox Code Playgroud)

但每次我自动格式化代码时,它都会继续在括号前面添加另一个选项卡。任何人都知道我如何关闭此功能,或者这是一个错误

Eclipse 信息:版本:Juno 发行版本 ID:20120614-1722 使用 CDT

注意: 我正在使用我自己的代码风格配置文件。

c++ eclipse eclipse-cdt

4
推荐指数
1
解决办法
1万
查看次数

如何让 Eclipse CDT 相信宏是为源代码编辑和代码完成而定义的?

我的源代码中有:

// foo.cpp
struct foo
{
  foo() {}

  #ifdef I_WANT_THIS_FEATURE
  void bar() {}
  #endif
};
Run Code Online (Sandbox Code Playgroud)

在我的 Makefile 中我有

foo.o: foo.cpp
        g++ -c -DI_WANT_THIS_FEATURE foo.cpp -o foo.o
Run Code Online (Sandbox Code Playgroud)

这可以从命令行以及我在 Eclipse 中创建的外部构建器(它基本上定义了一些环境变量和调用make)进行良好的编译,并且我可以调用foo::bar().

但是,在 Eclipse CDT 源代码编辑器中,我定义的部分foo::bar()具有灰色背景(表明foo::bar()不会包含在构建中),并且类型对象上的代码完成foo不建议bar()作为可以调用的方法。

如何使用I_WANT_THIS_FEATURE自定义 makefile 在 Eclipse CDT makefile 项目中定义宏,以便源代码编辑器和代码完成可以识别该宏?

eclipse indexing eclipse-cdt eclipse-juno

4
推荐指数
1
解决办法
5993
查看次数

VS 2015 链接器错误,预编译头文件

我正在将 eclipse cdt 与 Visual Studio 2015 工具链一起使用。在对所有不同的选项进行了大量修改之后,我现在几乎可以使用预编译的头文件了。在预构建步骤中,我从 stdafx.cpp 创建预编译头文件并在其他文件中使用它。编译运行良好,但在链接时出现以下错误:Logger.obj : error LNK2011: precompiled object not linked in; image may not run

Logger.obj 是从 Logger.cpp 创建的,它是我自己的文件之一,并在此过程中被编译。我想这可能是因为整个 Logger 类是一个模板,并且 Logger.cpp 中没有真正的代码,但即使尝试使用 stdafx.h 中包含的内容也不会改变这一点。

有没有人可能知道错误的实际含义?我在拥有多个库时看到了一些帖子,但就我而言,它实际上是我自己的文件之一,而不是来自库。我将不胜感激任何提示!

c++ eclipse-cdt visual-studio

4
推荐指数
1
解决办法
3278
查看次数

Eclipse CDT Indexer无法完全识别c ++ 11

首先,我知道-std = c ++ 11标志以启用c ++ 11支持以及放置它的位置.我已经追加-std=c++11Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags和编译只是正常工作.但是,如果我想使用的索引不相处,例如emplace功能std::map(C++ 11),也不会找到布设功能.

#include <map>

int main() {
    std::map<int, int> data;
    data.emplace(5,5);
Run Code Online (Sandbox Code Playgroud)

我还查看了这些相关问题:

更新:现在我已经玩过它甚至无法识别std :: map类型,虽然编译精细和eclipse找到所有标题...

  • 编译器Mingw64 GCC 5.2.0
  • Eclipse Mars 4.5
  • CDT 8.7

c++ eclipse eclipse-cdt c++11

4
推荐指数
1
解决办法
4533
查看次数

Eclipse CDT“打开声明”列出同一文件“两次

使用 Eclipse Luna Service Release 2 (4.4.2)、C 和 C++,尽管此问题与 C 代码有关。在 Win XP 上运行 Eclipse。

我正在使用一个有 2 个项目的系统。这些项目通过属性 - 项目引用链接。

一些引用工作正常:我可以在一个项目中的符号上使用“开放声明”,它会立即跳转到第二个项目中定义它的正确位置。然而,偶尔我会发现一个符号会弹出一个“打开声明”对话框,其中列出了 2 个替代方案,这两个选项都是完全相同的文件(通过完全相同的路径)。其中一个选择给出了正确的结果,另一个给出了几乎相同的结果,只是少了几行。另外,Eclipse(解析器)认为存在一些语法错误,而实际上并没有错误。我已经在两个项目上重建了索引,尝试将两个项目相互引用,并且仅以一种方式引用。我已经停止了 Eclipse 并重新启动了它。

有什么解决办法吗?

eclipse eclipse-cdt

4
推荐指数
1
解决办法
948
查看次数

什么会导致我的源文件变灰,文件图标上有删除线?

我正在尝试使用 Eclipse Mars 为 STM32F4 Discovery 板构建应用程序。我特别想使用 SPI 库。我已在主程序中包含相应的头文件,但收到错误消息,指出我尝试使用的函数未定义。

HAL_SPI_Init 未声明

稍微戳了一下,我意识到该项目的大部分源文件都是灰色的,图标上有一条横线。

源文件变灰。

我能找到的最多的是人们在谈论整个文件夹是如何变灰的。我尝试过寻找“灰色图标”、“删除线”以及灰色、图标和栏的任意组合,但无济于事。有谁知道这意味着文件变灰并被删除?

eclipse eclipse-cdt

4
推荐指数
1
解决办法
5970
查看次数

Eclipse CDT的解析器/索引器是否具有"自识别"预处理器#define宏?

我想在Eclipse解析源代码树时只包含一些代码.目前,我在做什么^ H ^ H ^ H ^ H ^ H尝试做的是添加一个自定义预处理器宏 - 使用Eclipse的帮助| 偏好| C/C++ | 建立| 设置发现 - 并-DECLIPSE_BUILTIN在那里插入各种命令行.

所以我想知道是否已经有一个标准的,一个默认的宏,预处理器(和索引器?)定义为"识别"自己这样的代码 - 以免给我带来麻烦.

parsing eclipse-cdt

4
推荐指数
1
解决办法
331
查看次数