Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用C+时链接异常+;使用JNA从java中的源对象(.so)文件内部调用函数。 我试图从C++中访问函数,所以java中的文件(JNA)。我能够从这个.so文件调用简单的“Hello”类型函数。但是,当我试图访问其他函数时,这些函数在内部调用来自其他文件的函数(.so文件是用C编写的),我会遇到如下异常: 线程“main”java.lang.unsatifiedlinkerror:/home/stpl/workspace/TestJNA/bin/libhello.so中出现异常:未定义符号:PInit_Java_C++_C_Java Native Interface_Shared Libraries - Fatal编程技术网

调用C+时链接异常+;使用JNA从java中的源对象(.so)文件内部调用函数。 我试图从C++中访问函数,所以java中的文件(JNA)。我能够从这个.so文件调用简单的“Hello”类型函数。但是,当我试图访问其他函数时,这些函数在内部调用来自其他文件的函数(.so文件是用C编写的),我会遇到如下异常: 线程“main”java.lang.unsatifiedlinkerror:/home/stpl/workspace/TestJNA/bin/libhello.so中出现异常:未定义符号:PInit

调用C+时链接异常+;使用JNA从java中的源对象(.so)文件内部调用函数。 我试图从C++中访问函数,所以java中的文件(JNA)。我能够从这个.so文件调用简单的“Hello”类型函数。但是,当我试图访问其他函数时,这些函数在内部调用来自其他文件的函数(.so文件是用C编写的),我会遇到如下异常: 线程“main”java.lang.unsatifiedlinkerror:/home/stpl/workspace/TestJNA/bin/libhello.so中出现异常:未定义符号:PInit,java,c++,c,java-native-interface,shared-libraries,Java,C++,C,Java Native Interface,Shared Libraries,我被困在这里面了。任何帮助都将不胜感激。现在我的问题解决了。 如果有人有同样的问题,问题就在.so文件中。 下面是要创建.so文件的.mk文件的脚本 CC=g++ CFLAG=-g-O0 PRNINC=-I./Include-I./PRT.IF-I./app PRNLIBS=-lHWIGotPrinter-lcommon-lpthread-ldl ASTYLE=ASTYLE ASTYLEFLAGS=--style=ansi-t-p-b-S-K compiledate=$(外壳程序日期'+%F%T

我被困在这里面了。任何帮助都将不胜感激。

现在我的问题解决了。 如果有人有同样的问题,问题就在.so文件中。 下面是要创建.so文件的.mk文件的脚本

CC=g++ CFLAG=-g-O0

PRNINC=-I./Include-I./PRT.IF-I./app PRNLIBS=-lHWIGotPrinter-lcommon-lpthread-ldl

ASTYLE=ASTYLE ASTYLEFLAGS=--style=ansi-t-p-b-S-K

compiledate=$(外壳程序日期'+%F%T') DEFS=-D DEFINE\u MKDATE=“\”$(编译数据)\“”

INC_PUB=-I./Include-I./PRT.IF-I./SCANNER.IF-I./Include INCLUDE=$(INC_PUB)

%.o:%.cpp $(CC)$(CFLAG)$(DEFS)-fPIC$(包括)-c$<-共享-o$@

%.o:%.c $(CC)$(CFLAG)$(DEFS)-fPIC$(包括)-c$<-shared-o$@

.冒牌货:全部
全部:PRN

HSCAN CDU UPS PRNAPPS=bin/libprntest.so
PRN:$(PRNAPPS)

bin/libprntest.so:app/prn_proc.cpp app/prntest.cpp app/myCpp.cpp $(CC)$(CFLAG)$(DEFS)$(PRNINC)$(PRNLIBS)$^-shared-o$@

区:全部 mkdir-p仪器测试 rm-rf仪器测试/* cp-a测试/ cp-f Makefile inst/ tar-czf仪器-$(大调)。$(小调)。tgz仪器测试/ rm-rf仪器测试

安装: 安装-m 755$(PRNAPPS)/usr/bin

cleanbak: 找到-名称*.o | xargs rm-f 找到-名称*~| xargs rm-f 找到-名称*.bak | xargs rm-f 找到-名称*.orig | xargs rm-f 找到-名称*.cpp | xargs chmod 644 找到-name.h | xargs chmod 644 chmod 644./etc lib/gotlib

清洁: 找到-名称*.o | xargs rm-f 找到-名称*~| xargs rm-f 找到-名称*.bak | xargs rm-f 找到-名称*.orig | xargs rm-f 找到-名称*.cpp | xargs chmod 644 找到-名称*.h | xargs chmod 644 rm-f$(PRNAPP)$(扫描应用程序)$(HSCANAPP)$(升级应用程序)$(CDUAPP)$(硬件应用程序)$(CMOSAPPS)$(工具应用程序)

帮助: 呼应“制造风格” echo“制作cleanbak” 回声“清洁” 回声“制造” 回声“制造距离”
echo“make install”

well.。因此应该是共享对象的缩写。你的头衔上写着JNA。我认为粘贴一些相关的代码是个好主意,那么它叫C还是C++呢?这些C++语言C++ C++函数,C++函数调用库中的函数,c@ @ HuthMpRrr-我正在创建。所以,从C++代码中,我尝试用java本地访问(java应用程序)从中访问函数。