我想在我的 C 代码中使用 C++ 库 gloox(openwrt 的 easycwmp 包)。
我使用 openwrt 工具链将 gloox 编译为包:
这是 cpp 文件 gloox.cpp :
#include "gloox.h"
namespace gloox
{
const std::string XMPP_STREAM_VERSION_MAJOR = "1";
const std::string XMPP_STREAM_VERSION_MINOR = "0";
const std::string GLOOX_VERSION = "1.0.11";
const std::string GLOOX_CAPS_NODE = "http://camaya.net/gloox";
}
extern "C" const char* gloox_version()
{
return gloox::GLOOX_VERSION.c_str();
}
头文件 gloox.h :
#ifndef GLOOX_H__
#define GLOOX_H__
#include "macros.h"
extern "C" //--> error: expected identifier or '(' before string constant
{
GLOOX_API const char* gloox_version();
}
#endif // GLOOX_H__
当我在 easycwmp 包的 C 代码中包含 gloox.h 时,gloox 包的编译是可以的,我收到此错误:
staging_dir/target-i386_uClibc-0.9.33.2/usr/include/gloox.h:12:8:错误:预期的标识符或字符串常量之前的“(”!!
我用命令编译 libgloox:
make package/libgloox/compile
然后我用 cmd 编译 easycwmp 包:
make package/easycwmp/compile
任何帮助表示赞赏