在参考这个问题(为面向对象的C++代码开发C封装器API)的回答后,我成功地为我的C++代码编写了一个C封装器。
我想将我的封装器编译和链接到一个静态库中(使用g++编译),并且该库可以使用gcc进行编译和链接(不需要使用g++)。这样,库的用户就不必关心库是用C++编写的。
这是否可行?
在参考这个问题(为面向对象的C++代码开发C封装器API)的回答后,我成功地为我的C++代码编写了一个C封装器。
我想将我的封装器编译和链接到一个静态库中(使用g++编译),并且该库可以使用gcc进行编译和链接(不需要使用g++)。这样,库的用户就不必关心库是用C++编写的。
这是否可行?
#ifdef __cplusplus
来检测编译器是C还是C++编译器。// MyHeader
#ifndef MYHEADER
#define MYHEADER
#ifdef __cplusplus
// Class definition or any other C++ code
extern "C" {
#endif
// C only code here
#ifdef __cplusplus
}
#endif
#endif
std::string
或类似内容,则链接C++库静态。 - Yakk - Adam Nevraumont