android - 无法在 Android NDK 中使用 C++ 静态变量
问题描述
我有以下 C++ 类Foo.cpp
:
#include <string>
using namespace std;
class Foo {
public:
static int bar;
static void set(int _bar) {
Foo::bar = _bar;
}
static int get() {
return bar;
}
};
int Foo::bar;
我想将它包含在我的 NDK 项目中。我想在我的 NDK 端点中访问 Foo::bar ,它实现了本机方法,如下所示:
#include "Foo.cpp"
它们都位于同一个文件夹、同一个库add_library
中(CMakeLists.txt 中的 smae 函数)。但是,当我编译代码时,它指出存在multiple definition of Foo::bar
,并指向 NDK 端点作为首次定义静态变量的位置。
我确实尝试将整个 Foo 类放在这样的命名空间中:
namespace {
// The above class Foo here
}
它确实编译但在我启动应用程序后立即退出。如何解决这个问题?谢谢!
我有 Java 背景,所以我希望有类似于“普通”Java 静态的东西。
解决方案
推荐阅读
- keras - fit_generator 和 predict_generator 中的验证结果之间的差异
- python - 随机拆分一个numpy数组
- android - kotlin android 选择器视图
- azure - 身份框架体验定义
- sql - 将表格中的数据插入表格
- d3.js - D3JS:在单个命令中附加简单的嵌套 HTML
- url - 如何在 swagger ui 中显示当前 url?
- javascript - C# numberfields 的总和(静态和动态)小于 100
- c# - 回发后下拉列表未更改网格视图数据
- google-cloud-platform - 在 VM 实例上使用 Jupyter 并访问 BigQuery:“无法访问本地主机”