我正在使用Saxon中C API中的cpp和hpp文件,我只是编译并运行了以下几行:
SaxonProcessor* processor = new SaxonProcessor(false);
Xslt30Processor* xslt = processor->newXslt30Processor();它显示了创建XSLT30Processor时的错误。我也不会用执照的。
我已经调试过它,在它调用JNI方法之前,我所能达到的最远是Xslt30Processor.cpp的第36行:
Xslt30Processor::Xslt30Processor(SaxonProcessor * p, std::string curr) {
proc = p;
jitCompilation = false;
exception = nullptr;
/*
* Look for class.
*/
cppClass = lookForClass(SaxonProcessor::sxn_environ->env, \\ It fails here
"net/sf/saxon/option/cpp/Xslt30Processor");
jobject tempcppXT = createSaxonProcessor2(SaxonProcessor::sxn_environ->env, cppClass,
"(Lnet/sf/saxon/s9api/Processor;)V", proc->proc);
if(tempcppXT) {
cppXT = SaxonProcessor::sxn_environ->env->NewGlobalRef(tempcppXT);
SaxonProcessor::sxn_environ->env->DeleteLocalRef(tempcppXT);
} else {
createException("Error: Failed to create the Xslt30Processor internal object");
}
#ifdef DEBUG
jmethodID debugMID = SaxonProcessor::sxn_environ->env->GetStaticMethodID(cppClass, "setDebugMode", "(Z)V");
SaxonProcessor::sxn_environ->env->CallStaticVoidMethod(cppClass, debugMID, (jboolean)true);
#endif
if(cppXT == nullptr) {
createException();
}
if(!(proc->cwd.empty()) && curr.empty()){
cwdXT = proc->cwd;
} else if(!curr.empty()){
cwdXT = curr;
}
}发布于 2022-03-07 09:35:56
我想出来了,我的cpp文件不包括按写顺序写的文件。我无法想象
https://stackoverflow.com/questions/71377153
复制相似问题