我正在开发一个独立的php扩展程序。在对全局(外部)变量出现问题之后,我注意到Visual C导入库(我从未使用VC而我根本不知道)已经对变量和函数进行了不同的命名。 GNU编译器破坏了相同的功能,没有问题。在dll和libs中,变量具有双下划线,其中函数只有一个。 例; (伪)
#define EXT_API __declspec(dllimport)
extern "C"
{
EXT_API int func(void);
EXT_API extern int data;
}
给出(在lib / dll中)
_imp__func
__imp__data
但GCC搜索
_imp__func (OK)
_imp__data (unresolved)
如何配置GCC以破坏数据的导入名称;像__imp__name
?
提前致谢。
注意:我的问题不在于编译器如何破坏功能。函数和数据已使用相同的选项/首选项进行编译,但VC已生成_imp__func和__imp__data。我使用相同的选项(匹配VC结果)在同一模块上编译数据和函数,GCC生成_imp__func和_imp__data。 GCC我错过了什么?