gpt4 book ai didi

c++ - 从命令行使用 Eclipse CDT

转载 作者:行者123 更新时间:2023-11-30 04:31:43 25 4
gpt4 key购买 nike

我需要将我的一些 C++ 类、函数和命名空间重命名为我的构建脚本的一部分,该脚本由我的 CI 系统运行。

不幸的是,一个简单的 sad/awk/gsar/... 技术是不够的,我需要智能重命名重构,仔 segmentation 析我的代码。

实际上我发现,CDT C/C++ 重命名重构可以满足我的需要。但它是从 Eclipse IDE 中完成的。所以我需要找到一种方法从命令行启动它,并使其成为我的 CI 构建脚本的一部分。

我知道 Eclipse 有 eclipsec 可执行文件,它允许从命令行(see e.g. here)运行一些 Eclipse 功能。

但是我找不到任何合适的功能文档,CDT 导出到命令行。我发现的唯一一件事是 this .但这并没有解决我的问题。

所以,我需要帮助从命令行(或类似的方式)运行 CDT 重命名重构。如果不可能,可能有人会建议另一种工具,它可以从命令行为 C++ 重命名重构?

最佳答案

务实的方法

"I need to have renamed as a part of my build script"

这听起来有点像设计问题。然而,我记得曾经在 AIX/Win32 上编写 C++ 应用程序时犯过同样的错误:最值得注意的是,我希望能够链接共享对象的“冲突”版本。我使用这样一个简单的预处理器 hack 解决了它:

# makefile

#if($(ALTERNATIVE))
CPPFLAGS+=-DLIBNAMESPACE=MYLIB_ALTERNATIVE
#else
CPPFLAGS+=-DLIBNAMESPACE=MYLIB
#endif

./obj64/%.o: %cpp
xlC++ $(CPPFLAGS) $^ -o %@

示例源/头文件:

namespace MYLIB
{
class LibService :
{
};
}

如你所见,这只需要一个

find -iname '*.[hc]pp' -o -iname '*.[hc]' -print0 |
xargs -0 sed -i 's/OldNamespace/MYLIB/g'

Eclipse 自动化

你可以 have a look at eclim ,它完成了您所描述的大部分(如果不是全部),但它针对的是 vim 编辑器。

eclim 引以为傲的是来自外部程序的完整 eclipse 集成(完成、重构、用法搜索等)。我还没有完全跟上 eclim 后端的速度,但我知道它与 eclimd 服务器进程 一起工作,该进程公开了 vim 插件使用的服务接口(interface)。

我怀疑如果不只是出于您的目的使用 eclim,您应该能够重用 eclimd 中的代码。

关于c++ - 从命令行使用 Eclipse CDT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8093071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com