如何用协议缓冲区编译成.so文件
how to compile with protocol buffer into .so file
我试图在一个c++项目上使用谷歌的协议缓冲区。我可以做得很好,比如说…iOS框架目标。然而,我似乎无法让编译器找到任何google/protobuf文件。我已经有了静态库文件(不确定这个文件是否适用于我的体系结构?我使用:https://gist.github.com/BennettSmith/9487468ae3375d0db0cc)
在proto文件的输出中,假设是blah.pb.h
,我有一个对protobuf的引用:
#include <google/protobuf/stubs/common.h>
编译器找不到^引用
我试着用这样的东西来ndk-build
:
include $(CLEAR_VARS)
LOCAL_MODULE := libprotobuf
LOCAL_SRC_FILES := src/lib/libprotobuf.a
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_SRC_FILES:=$(shell find src/lib -name '*.cpp')
LOCAL_MODULE := mymodule
LOCAL_C_INCLUDES += ./src/lib
LOCAL_STATIC_LIBRARIES := libprotobuf
include $(BUILD_SHARED_LIBRARY)
但似乎一点用都没有。这是怎么呢当我有。a文件时,我如何包含lib protobuf ?我必须从源代码编译它吗?
原来我必须做很多事情:
我必须复制整个protobuf include
文件夹(一个与所有的头)到我的项目。然后将它们包含在我的LOCAL_EXPORT_C_INCLUDES
也,我用来做ndk-build的命令也不完全正确。它丢失了很多东西,比如丢失了"string"或vector
或map
。所以我用这个代替:
ndk-build V=1 NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk APP_STL=stlport_static
NDK - Android Java with native (JNI) c++代码构建问题
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- 在C++代码中包含opencv时,使用ctypes创建.so文件
- 用于构建 cuda .so 文件(共享库)的生成文件
- 无法从 SO 文件调用 SO 文件的函数 - C++生成文件
- 如何在 C++ 的 .so 文件中包含库
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- Google Colab 看不到 .so 文件
- 如何在 Linux 中从 .so 文件打开可执行文件?
- 如何在makefile中包含tensorflow c ++".so"文件?
- 缺少 .h 文件,尽管从库文件夹链接了 .so 文件
- 如何在 CMake 超级生成中查找 dll/so 文件
- 如何用.so文件linux打包所有需要的库
- 如何调试visual studio 2017生成的C++代码.android中的SO文件和其他第三方库
- 从多个C++文件生成 .so 文件并使用它
- .so 文件无法"see"编译时使用的库
- 从 .so/.o 文件中获取 C/cpp 中的静态库列表
- 在Windows上运行Linux Makefile(.so文件)
- 如何静态链接到 POCO C++ so 文件
- C++ .so 文件中的模板化函数
- 卸载共享对象(.so 文件)在 C++ 中用 dlopen() 打开