【发布时间】:2013-05-16 12:07:21
【问题描述】:
我正在用 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,如果这有什么不同的话。
【问题讨论】:
-
像
make这样的构建工具可以为不同的语言调用不同的编译器。 -
使用 g++ 编译 C 代码时会收到什么样的错误消息?