将*.c/*.h项目(编译为C++)转换为*.cpp/*.hpp

Kev*_*ing 3 c++ rename batch-file include

问题:将基于.c / .h的项目(通过makefile强制编译为C++)转换为基于.cpp / .hpp的项目的最佳方法是什么?

显然,这是一个三步过程.第一种方法是将*.c重命名为*.cpp; 第二种方法是将*.h最后重命名为*.hpp.我要抓住的是第三步 - 以某种方式构建文件/命名/命名列表(即myfile.c),然后遍历每个受影响的文件并用旧文件名替换旧文件名的每个实例. new(myfile.c - > myfile.cpp).显然必须这样做,所以源文件仍然可以找到他们需要的一切.

有问题的源代码包含大约2700个单独的源文件.

我这样做的原因主要是因为我将所述软件包移植到Mac OS X,这涉及到Xcode.事情变得血腥凌乱,试图准确地跟踪C,C++和相关标题是什么(然后重写编译器的C++编译).如果所有C++都是*.cpp(关联标题为*.hpp)会更简单,因为那时我可以根据文件扩展名将Xcode保留在默认的编译器设置中,所有内容都可以在没有任何花哨介入的情况下工作结束.

我可能还应该注意到,我确切地知道需要转换哪些文件,因为如果我重写Xcode以编译为C++,它们已经正确编译并且以理智的方式编译.这不是问题 - 我的问题是试图弄清楚如何批量重命名然后运行所有文件并更新#includes.

先感谢您!-Keven小费

Ben*_*igt 6

你不需要弄乱标题.filename.h是C++头文件的完美名称.

如果你没有使用旧的makefile,而是创建一个新的XCode项目,那么你只有一步:

  • 将*.c重命名为*.cpp

如果makefile是正确编写的(使用规则模式而不是特定的每文件规则),那么也不应该进行任何更改.