小编Señ*_*Mas的帖子

介子项目版本可以动态分配吗?

我是 Meson 的新手,所以如果这是一个愚蠢的问题,请原谅我。

问题的简单版本:

我希望能够在构建时为介子项目版本分配动态版本号。基本上meson.project_version()=my_dynamic_varproject( 'my_cool_project', 'c', version : my_dynamic_var')(当然这行不通)。

如果不需要,我宁愿不预处理文件。

如果有人关心,请了解一些背景:

我的构建系统会动态提供项目的版本号。就我而言,它使用的是 bash 脚本。我可以使用run_command并从那里抓取stdout将该版本放入我的顶级 meson.build 文件中。我读过使用这种方式是不好的形式所以如果有另一种方式来做到这一点..我全神贯注。

我也能够创造和传递正确的-DPRODUCT_VERSION="<my_dynamic_var>"通过add_global_arguments所以我COULD只是解决的..但我想介子项目本身进行的同一版本的日志,这样我就可以使用meson.project_version()来获得c/c++ 以外的语言的子项目中的版本。

versioning meson-build

6
推荐指数
1
解决办法
697
查看次数

具有多个参数的 JNI 自定义异常

我对 JNI 的优点相当陌生,所以请告诉我我是否愚蠢。

我试图将一个自定义异常从 C++ 抛出到使用字符串和整数构造的 Java 层。我无法让 ThrowNew() 工作,因为它只需要一个字符串参数。我能找到的每个自定义异常示例都使用 ThrowNew()!咕噜咕噜

我猜我需要构造一个并用“Throw(jthrowable obj)”抛出它,但我不确定..与“ThrowNew()”相同吗?

例如,这就是我需要的:

int myErrorCode = 42;
const char* myErrorString = "stuff broke";

jclass myExceptionClass = env->FindClass("MyException");
env->ThrowNew(myExceptionClass, myErrorString, myErrorCode );//<-- of course this wont work!
Run Code Online (Sandbox Code Playgroud)

如果我的异常类看起来像 Exception() 并且只接受一个字符串,则此代码可以正常工作。

有谁知道如何构造并向 java 抛出一个新的异常实例,该异常接受除 Exception() 的默认字符串之外的参数?只扔一根绳子对我来说毫无价值。

提前致谢!

c++ java java-native-interface android exception

2
推荐指数
1
解决办法
901
查看次数