我们在“c”中有很好的代码库。现在,我们正在为所有新模块迁移到 c++。我有一个案例在旧的 c 代码库中使用几个 c++ 类。单独地,两者都有效,即 c++ 模块和 c 模块单独工作并提供所需的 o\p。
当我混合它们时,即在 Ac 中调用 c++ 类时,它会引发大量与旧代码相关的错误。
在我们的 makefile.am 中,我们之前有一个选项 cc=gcc,现在我们将它更改为 cc=g++,因为它抛出了一些错误。最后带有 make 的 makefile.am 创建了一个库,我们说 libx.a。makefile.am 包含各种早期的源文件,即 Ac,xc,yc...
我最初在 Ac,xc 下修复了错误,假设它们使用新的 g++ 编译器。现在,它开始在 xc 下抛出错误,像这样我们有各种源文件。
修复所有这些非常繁琐。我相信我缺少一些与这些错误相关的编译器标志选项。现在,这些错误中的大多数是类型转换错误,我使用 static_cast 等对其进行了转换。除此之外,很少有其他错误。但是,该代码是 c 中的工作代码,它只是混合和更改 makefile 会引发这些错误。
Q: 1. 如何摆脱这些错误?2. 是否有任何编译器标志我需要使用以最小的努力继续工作?3. 在这些过程中我做错了什么吗?4. 有人建议对makefile.am 进行任何更改吗?
对此的任何帮助表示赞赏。如果 Q 不清楚,请告诉我。
注意:我们使用 autoreconf、configure 和 make 运行我们的应用程序。
问候, 桑托什