使用Google C++测试框架(googletest)测试C代码

4

我正在尝试使用googletest测试C代码,但是当我的C头文件包含在C++测试文件中时,我遇到了一些问题,因为g++编译器将它们处理为C++头文件。

我尝试在extern "C" {}内包含这些头文件,但没有成功。

是否有一种方法可以让g++编译器将这些头文件视为C头文件?


1
很奇怪extern "C" { }不能解决这个问题——你具体遇到了什么错误? - Sean
你收到了什么错误消息? - Rudi
C语言的语法特性,例如typedef struct A *A; struct A { A a; };会引发错误。 - carlosalbertomst
1个回答

5

extern "C" 只会改变链接阶段的名称重整。如果你正在使用 C 没有与 C++ 共享的特性,则无法解决问题。


是的,g++有没有办法将头文件处理为C语言的头文件? - carlosalbertomst
如果您想要将 C 和 C++ 模块混合使用,必须在链接阶段完成。一个二进制对象文件只能使用一种语言的规则进行编译。 - totowtwo
SOL是什么意思? - Mehdi Charife

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接