链接器无法找到功能

时间:2016-09-07 10:21:57

标签: android c++ gcc

我正在尝试构建一个基于我已经正确构建的Aosp树的Ubuntu Touch树。 它失败并出现此错误

  

CAPEWrapper.cpp:16:错误:对'__xlog_buf_printf'的未定义引用

这是文件包含的标题

#include "CAPEWrapper.h"

级联包括

#include <cutils/xlog.h>

反过来定义

#if defined(__cplusplus)
extern "C" {
#endif

int __xlog_buf_printf(int bufid, const struct xlog_record *rec, ...);

#if defined(__cplusplus)
}
#endif

我怀疑我的g ++没有设置__cplusplus宏。这种错误可能是一个现实的情况吗?如果这可能是问题,我是否需要使用“stdc = something”指定标准实现来解决它?

欢迎任何其他想法。

2 个答案:

答案 0 :(得分:2)

确保您的项目正在链接libcutils,并且它以正确的顺序链接它(即{/ 1}}出现在之后的链接器命令行中>任何依赖它的模块。)

答案 1 :(得分:0)

最后,我发现这些模块列在名为LOCAL_WHOLE_STATIC_LIBRARIES的宏中,在Android环境中将其内容传递给GCC链接器的--whole-archive标志。