安卓Java应用程序,仅支持C++头库
Android Java app with C++ header-only library?
我有一个只有头的C++库,我想开发一个使用这个库的Android Java应用程序(最好使用Android Studio),并将整个程序部署到手机上。现在,我已经假设拥有一个只有头的C++库会让事情变得更容易,但事实上恰恰相反,而且似乎不可能使用Java中的只有头的C++库。我需要"编译"C++库(这在只有头的库中是不可能的),然后做所有的JNI工作,就像在有原生C++.a/.so库时一样。但我想我一定忽略了一些东西——在安卓Java应用程序中不可能使用仅限头部的C++库吗?
(我知道其他解决方案,例如使用Qt开发Android C++应用程序,但我更喜欢用Java开发该应用程序,以节省所有Qt的麻烦,可靠地访问设备的摄像头,并拥有平台原生GUI。)
冒着指出显而易见的风险,创建一个名为"library.cpp"的文件,其中包含以下行:
#include "library.h"
编译"library.cpp".
更有可能的是,这个只有头的库中充满了模板代码。模板需要实例化才能生成对象代码。在"library.cpp"文件中,显式实例化要在Java中链接到的模板类。
现在,如果你认为你可以在C++中包含一个模板类,并将其实例化为Java中的泛型,那么你还有很多工作要做,如果可能的话(通常可能不会)。
相关文章:
- 编译时未启用intel oneApi CUDA支持
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 使用CMake检测支持的C++标准
- 为什么istream不支持右值提取
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 扩展光电二极管探测器以支持多个传感器
- MSVC是否支持C++11样式的属性而不是__declspec
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- 哪个C++规范开始支持 std::vector
- 如何检测VS C++编译器是否支持C++11?
- CertGetCertificateChain 具有支持的内存存储和证书信任列表
- Casablanca/cpprestsdk listener.support接受函数,但不支持方法
- 将 IPv6 支持添加到雨量计
- 为什么C++不支持对未初始化变量进行智能分析?
- LMDB 是否支持随机读取?
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 在 Ubuntu 18.04 上编译 GLSL 着色器时"不支持 GLSL 3.30"?
- 如何在多写入器情况下对文件支持的共享内存中的大页面出错