我正在用 C++ 编写一个程序,该程序需要调用一个用开源 C 程序编写的子例程。C 文件称为 shd.c。(程序中没有 shd 的头文件)。C 程序本身可以使用 gcc 编译器编译,而 C++ 程序在使用 g++ 编译时可以正常工作,而无需引用 C 文件。
但是,g++ 非常不喜欢 C 程序,当我使用 g++ 自己编译 shd 时会出现数百个错误和警告,并且当我包含 C 文件时编译 C++ 程序时也会遇到同样的问题。
截至目前,我包含 C 文件的方式如下所示:
extern "C"{
#include "shd"
}
无论如何,我认为我在这里唯一的选择(如果我错了,请纠正我)是使用不同的编译器分别编译 C 和 C++ 文件。有没有办法做到这一点?我还要指出我正在使用 NetBeans,如果这有什么不同的话。