无法从C 代码访问C共享库方法
Cannot access C shared library methods from C++ code
我正在尝试在我的C 代码中包括一个C库。
C代码已编译到C库中。C部分在下面:
这是c组件的android.mk文件:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= logger.c
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_CFLAGS += -Wall -Wno-unused-parameter -std=gnu99
LOCAL_SHARED_LIBRARIES := libcutils libsysutils
LOCAL_LDLIBS := -llog
LOCAL_MODULE_OWNER := company_name
LOCAL_PROPRIETARY_MODULE := true
LOCAL_MODULE := liblogger
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
C层的标题文件(C_Logger.h(如下:
#if defined (__cplusplus)
extern "C" {
#endif // __cplusplus
int logger_init ();
#if defined (__cplusplus)
}
#endif // __cplusplus
logger.c实现如下:
int combilog_init ()
{
// logic
return 0;
}
我是我的cpp代码,android.mk,我在" local_shared_libraries"中包含了此C库:
LOCAL_SHARED_LIBRARIES := liblogger
然后,我正在用CPP代码访问它:
int ret = init();
编译时,我看到以下错误:
In file included from xxxx/Logger.cpp:20:
XXXX/CPP_Logger.h:26:10: fatal error: 'c_logger.h' file not found
这里的任何帮助将不胜感激。
您仍然需要包括匹配.h,因此编译器识别您的init函数
相关文章:
- 如何访问由共享指针保存的类方法?
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- 仅在少数方法(静态或共享库)中解析的外部符号
- 将共享指针传递给函数参数 - 将其分配给局部变量的正确方法是什么
- 两个类之间的共享方法
- 是否有更好的方法来封装成员对象可以访问的共享存储池?
- 在 c++ 中,在线程之间共享数据容器的最佳方法是什么?
- 识别打开的共享内存状态的方法
- 如何使 extern 方法在共享库中定义,但使用 cmake 在其他目标中声明?
- Cython:无法调用共享库的非静态方法
- 无法从C 代码访问C共享库方法
- 与C++共享 Julia 对象的最有效方法是什么?
- 一种在没有 root 的情况下加载共享库的更简单方法
- CUDA:共享内存的超载以用多个数组实现还原方法
- 使用 dlopen() 引用共享库插件的正确方法是什么?
- 使用VCPKG与朋友共享您的项目的最佳方法是什么?
- 共享指针交换方法标识更改
- C++使用一种共享方法推送到 3 个不同的向量
- GL顶点数据的QThread数据共享方法