标签: eclipse-cdt

将文件中的活动预处理器符号导入 Eclipse CDT

我将 Eclipse CDT 用于带有自定义 makefile 的 C 项目,并且我想使用问题739230的答案中建议的非活动代码突出显示。活动/定义符号的自动发现对我的 makefile 不起作用。相反,我为列出活动符号的每个构建目标创建了一个文本文件。

所以我的问题是:

  1. 如何在不通过 GUI(文件夹属性 -> 路径和符号 -> 符号)的情况下将这些设置加载到项目中?
  2. 以及如何选择将符号添加到哪个配置/构建目标?

直接编辑 .cproject 文件并添加如下行:

<listOptionValue builtIn="false" value="HIRES_OUTPUT"/>
Run Code Online (Sandbox Code Playgroud)

但前提是我通过 GUI 为每个构建目标创建第一个密钥。我更愿意在一次操作中创建构建目标并导入符号。

从头开始编写 Eclipse 插件对于这项任务来说似乎有点过分。

有没有更聪明的方法来做到这一点?

c eclipse-cdt c-preprocessor

5
推荐指数
1
解决办法
4542
查看次数

函数模板的显式实例化失败 (g++)

我在显式实例化函数模板时遇到了一些问题(即链接错误)。在 Visual Studio 下项目链接正常,只有在 g++/Unix 下,使用 Eclipse-CDT,链接产生错误。

在一个大项目中,函数调用是静态库的一部分,它与动态库链接。该函数的架构如下:

  • 在我的MathUtils.h文件的命名空间内声明(但未实现)的函数模板。函数参数之一本身就是一个结构模板,它在这个文件中声明实现h(在相同的命名空间下)。
  • 函数实现和实例化在MathUtils.cpp.
  • 函数调用在someFile.cpp(当然是哪个#include "MathUtils.h")中,它作为静态库的一部分被编译和链接。

让我(几乎)发疯的事情是构建错误不能完全重现,我怀疑 Eclipse 是罪魁祸首(可能跳过了一些步骤,尽管我clean project在每次构建之前使用)。

大约一个小时,调试配置构建无错误,但发布失败并出现undefined reference to...链接错误。然后,在接下来的一个小时里,两种配置都失败了。然后我做了一个小项目,只有上面提到的 3 个文件,并从命令行和 Eclipse 编译它 - 根本没有错误。现在这两种配置似乎都可以正常链接。

有没有人在使用 Eclipse-CDT 时遇到过类似的问题?有什么建议?

编辑:由于问题不容易(或根本)重现,我想很难得到答案。如果我有任何新的见解,我会更新。

c++ gcc templates g++ eclipse-cdt

5
推荐指数
2
解决办法
2878
查看次数

如何在 Eclipse 中为启动新项目时创建的文件将 C++ 文件扩展名设置为 .cc?

默认情况下,Eclipse (CDT) 对 C++ 文件使用 .cpp 文件扩展名。我希望它使用 .cc(和 .hh)扩展名,但我在任何地方都找不到这样的选项。

编辑:准确地说,当我开始一个新的 C++ 项目时,它会创建一个 .cpp 文件。可以将此行为更改为创建 .cc 文件吗?

我本来希望它在 Window > Options > C/C++ > File Types 下,但据我所知,这没有帮助。我在 Google 上搜索过,我找到的唯一页面解释了如何在 Netbeans 中执行此操作。任何帮助是极大的赞赏!

c++ eclipse file-type eclipse-cdt

5
推荐指数
1
解决办法
4777
查看次数

如何将nullptr引入CDT代码分析器?

我在Eclipse CDT中遇到了代码分析器错误.它与C++ 11功能不兼容.__GXX_EXPERIMENTAL_CXX0X__已定义,并设置了编译器标志.库编译并正常工作,虽然我找不到告诉Eclipse这nullptr是一个关键字的方法!请不要突出显示它.

愚蠢的Eclipse :)

我正在使用当前LTS Ubuntu(12.04)的默认版本.这是Indigo(3.7.2).

c++ eclipse-cdt c++11

5
推荐指数
1
解决办法
504
查看次数

如何从Eclipse CDT项目编译Linux后删除自动发现的路径?

我已经在Linux上编译了我的项目,现在Eclipse CDT添加了一些包含当然在Windows上不存在的路径.Eclipse给了我关于这个的警告,这很烦人.我怎么摆脱他们?

C/C++构建/发现选项/清除发现条目现在没有帮助.它不会删除任何路径.

Description Resource    Path    Location    Type
Invalid project path: Include path not found (\usr\include\x86_64-linux-gnu).   UMCC        pathentry   Path Entry Problem
Invalid project path: Include path not found (\usr\include).    UMCC        pathentry   Path Entry Problem
Invalid project path: Include path not found (\usr\include\x86_64-linux-gnu\c++\4.7).   UMCC        pathentry   Path Entry Problem
Invalid project path: Include path not found (\usr\include\c++\4.7).    UMCC        pathentry   Path Entry Problem
Invalid project path: Include path not found (\usr\lib\gcc\x86_64-linux-gnu\4.7\include-fixed). UMCC        pathentry   Path Entry Problem
Invalid project path: Include path not found …
Run Code Online (Sandbox Code Playgroud)

c++ eclipse eclipse-cdt

5
推荐指数
1
解决办法
7654
查看次数

Eclipse-CDT为什么说自我赋值是错误的?

我正在使用谷歌测试在eclipse g ++中进行单元测试.当我尝试在我设计的课程中对自我分配检查进行单元测试时,我收到了错误.

像往常一样,重载是非常标准的,看起来像这样:

CLASS operator=(const CLASS& rhs);
Run Code Online (Sandbox Code Playgroud)

当我试图在测试中有这个:

CLASS A;
A = A;   //compile error here, saying self assignment to itself. have no clue why, though.
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种特定的自我分配测试方法.谢谢.

仅供参考,以下是错误的快照

在此输入图像描述

c++ eclipse-cdt googletest

5
推荐指数
1
解决办法
2796
查看次数

如何更改基于CDT的eclipse调试器中线程组显示中的文本?

我有一个基于CDT的调试器,并希望在线程节点中的字母中添加一些信息.我希望红色矩形包围的字母显示一些额外的信息(见下面的截图).

截图

AFAIR,此标签的格式字符串ThreadVMNode_No_columns__text_format在文件中的属性中设置C:\Users\...\workspace\org.eclipse.cdt.dsf.gdb.ui\src\org\eclipse\cdt\dsf\gdb\internal\ui\viewmodel\launch\MessagesForGdbLaunchVM.properties.

# {0} - name available, 0=not available/1=available
# {1} - name
# {2} - ID available, 0=not available/1=available
# {3} - ID
# {4} - OS Thread ID available, 0=not available/1=available
# {5} - OS Thread ID
# {6} - Core available, 0=not available/1=available
# {7} - Core 
# {8} - 0=running/1=suspended
# {9} - state change reason available, 0=not available/1=available
# {10} - state change reason
# {11} - state change details available, …
Run Code Online (Sandbox Code Playgroud)

java eclipse eclipse-cdt eclipse-rcp

5
推荐指数
1
解决办法
376
查看次数

Eclipse CDT:将控制台输出映射到源文件和行

在调试代码时,它有助于在控制台输出上具有源文件名和行号.我已经使用了FILELINE宏.但是如果双击控制台输出中的一行会将我带到负责输出该行日志的确切源行,那将会很棒.可以eclipse解析控制台输出并执行类似的操作吗?它不需要一直工作,只有当日志行采用特定格式且源文件名和行号有效时.

c eclipse gcc eclipse-cdt

5
推荐指数
1
解决办法
69
查看次数

无法解析类型'uint32_t'

我正在使用Eclipse(3.8.1)CDT中的C++程序.我在Debian 8上使用gcc编译器.我还使用了一个用C++编写的名为opendnp3的开源库,它需要uint32_t来解析,因为它是几个方法调用和构造函数中的参数.

在opendnp对象中,intellisense不列出

__uint32_t 然而,DOES解决了.

类型定义在<cstdint>(<cstdint>解析得很好).我可以打开宣言并清楚地看到' using ::uint32_t;'在那里.

在我的搜索中,我-std=c++11在"C/C++构建 - >设置 - >工具设置 - > GCC C++编译器"下添加了"所有选项",我还重建了项目索引并重新启动了Eclipse,但它仍然没有不解决.

这是迄今为止的代码:编辑到一个简单的HelloWorld项目来帮助诊断问题

#include <iostream>
#include <cstdint> //has uint32_t defined
using namespace std;

int main() {
    __uint32_t t = 0;  //resolves just fine
    uint32_t i = 0; //Type could not be resolved
    auto x = "123"; //C++ 11 working
    cout << "Foo!" << endl; // prints Foo!
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

构建尝试后的CDT控制台:

23:10:52****增量构建配置调试项目FOO****使所有make:'all'没什么可做的.

23:10:52构建完成(耗时133毫秒)

c++ eclipse gcc eclipse-cdt c++11

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

Eclipse CDT索引器C文件的结果与C ++文件的结果不同

我正在使用带有最新CDT的Eclipse 2018-12。编辑器出现奇怪的索引问题。鉴于以下。如果源文件的扩展名为“ .c”,则索引器会抱怨无法解析“布尔”和“假”类型。如果文件的扩展名为“ * .cpp”,则类型被解析。

在这两种情况下,项目都将生成并且可以调试。

不确定是否重要,但是尽管我尝试手动调整项目设置无济于事,但我正在使用CMake 3.13生成Eclipse Project文件。

#include <stdbool.h>
void main(void)
{
    bool success = false;
}
Run Code Online (Sandbox Code Playgroud)

我有一个C项目,但是我的单元测试使用的是GTest,并且是项目中唯一的.cpp文件。所有.c文件都表现出此行为。

c c++ indexing eclipse-cdt

5
推荐指数
1
解决办法
173
查看次数