JNI未定义对函数的引用

时间:2016-04-25 21:07:46

标签: c makefile java-native-interface mingw

我在C中有一个JNI设置,其中一个C文件包含代码,一个java类用于调用C代码。每当我在C代码中调用另一个函数内的函数时,我在编译makefile时会出错:

   CCode.o:CCode.c:(.text+0x205): undefined reference to `CFunction'
   collect2.exe: error: ld returned 1 exit status
   make: *** [CCode.dll] Error 1   

使用MinGW在eclipse中编译。除了调用其他人按预期工作的功能之外的所有功能。

# Define a variable for classpath
CLASS_PATH = ../bin
# Define a virtual path for .class in the bin directory
vpath %.class $(CLASS_PATH)

all : CCode.dll

# $@ matches the target, $< matches the first dependancy
CCode.dll : CCode.o
gcc -Wl,--add-stdcall-alias -shared -o $@ $<

# $@ matches the target, $< matches the first dependancy
CCode.o : CCode.c CCode.h
gcc -I "<<jdk location>>" -I "<<jdk location>>" -c $< -o $@

# $* matches the target filename without the extension
CCode.h : CCode.class
javah -classpath $(CLASS_PATH) $*

clean :
    rm CCode.h CCode.o CCode.dll

0 个答案:

没有答案