错误:在为extern“C”预期不合格-ID(error: expected unqualified

2019-10-23 05:19发布

我有我想打电话交流功能的CPP代码。 这两种编译很好地.o文件,但是当铛++的编译执行,我收到以下错误:

file.cpp:74:12: error: expected unqualified-id
    extern "C"
           ^

在CPP文件中的代码如下:

void parseExtern(QString str)
{
#ifdef __cplusplus
    extern "C"
    {
#endif
        function_in_C(str);
#ifdef __cplusplus
    }
#endif

}

如何避免错误? 我不能编译铿锵的C ++文件,我真的需要使用外部量。 谢谢。

Answer 1:

extern "C"链接规范是附加到函数声明的东西。 你不把它在调用点。

在你的情况,你会放在一个头文件如下:

#ifdef __cplusplus
    extern "C"
    {
#endif
        void function_in_C(char const *); /* insert correct prototype */
        /* add other C function prototypes here if needed */
#ifdef __cplusplus
    }
#endif

然后在你的C ++代码,你只需要调用它像任何其他功能。 不需要额外的装饰。

char const * data = ...;
function_in_C(data);


文章来源: error: expected unqualified-id on extern “C”