运行JavaCpp示例(LegacyLibrary)时出现不满意的LinkException
我正在尝试使用JDK1.7.0和JavaCPP0.3(bin)在WindowsXPProfessional(x86)上使用VisualStudio2008构建并运行JavaCpp的应用程序,我得到以下输出。错误出现在最后一个命令上,运行JavaCpp示例(LegacyLibrary)时出现不满意的LinkException,java,c++,java-native-interface,javacpp,Java,C++,Java Native Interface,Javacpp,我正在尝试使用JDK1.7.0和JavaCPP0.3(bin)在WindowsXPProfessional(x86)上使用VisualStudio2008构建并运行JavaCpp的应用程序,我得到以下输出。错误出现在最后一个命令上,java-cp javacpp.jar LegacyLibrary C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf \JavaCpp>dir Vo
java-cp javacpp.jar LegacyLibrary
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp>dir
Volume in drive C has no label.
Volume Serial Number is 9099-0685
Directory of C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hell
o_JNI\src\graf\JavaCpp
22/01/2013 10:19 AM <DIR> .
22/01/2013 10:19 AM <DIR> ..
04/11/2012 09:00 PM 109,991 javacpp.jar
22/01/2013 10:18 AM 297 LegacyLibrary.h
22/01/2013 10:19 AM 1,058 LegacyLibrary.java
3 File(s) 111,346 bytes
2 Dir(s) 362,833,334,272 bytes free
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp>javac -cp javacpp.jar LegacyLibrary.java
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp>java -jar javacpp.jar LegacyLibrary
Generating source file: C:\Documents and Settings\Brian\My Documents\Projects\Co
py of Hello_JNI\src\graf\JavaCpp\jniLegacyLibrary.cpp
Building library file: C:\Documents and Settings\Brian\My Documents\Projects\Cop
y of Hello_JNI\src\graf\JavaCpp\windows-x86\jniLegacyLibrary.dll
cl /IC:\jdk1.7.0\include /IC:\jdk1.7.0\include\win32 "C:\Documents and Settings\
Brian\My Documents\Projects\Copy of Hello_JNI\src\graf\JavaCpp\jniLegacyLibrary.
cpp" /W3 /Oi /O2 /EHsc /Gy /GL /MD /LD /link "/OUT:C:\Documents and Settings\Bri
an\My Documents\Projects\Copy of Hello_JNI\src\graf\JavaCpp\windows-x86\jniLegac
yLibrary.dll" /LIBPATH:C:\jdk1.7.0\lib /LIBPATH:C:\jdk1.7.0\jre\bin\server jvm.l
ib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
jniLegacyLibrary.cpp
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(113) : warning C4996: 'strcpy': This function or v
ariable may be unsafe. Consider using strcpy_s instead. To disable deprecation,
use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(74) : s
ee declaration of 'strcpy'
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(115) : warning C4996: 'strncpy': This function or
variable may be unsafe. Consider using strncpy_s instead. To disable deprecation
, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(157) :
see declaration of 'strncpy'
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(185) : warning C4996: 'strdup': The POSIX name for
this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See
online help for details.
c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(207) :
see declaration of 'strdup'
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(340) : warning C4244: 'argument' : conversion from
'jlong' to 'size_t', possible loss of data
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(354) : warning C4244: 'argument' : conversion from
'jlong' to 'size_t', possible loss of data
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(370) : warning C4244: 'argument' : conversion from
'jlong' to 'size_t', possible loss of data
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(385) : warning C4244: 'argument' : conversion from
'jlong' to 'size_t', possible loss of data
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(393) : warning C4244: 'argument' : conversion from
'jlong' to 'size_t', possible loss of data
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp\jniLegacyLibrary.cpp(956) : warning C4800: 'jboolean' : forcing value t
o bool 'true' or 'false' (performance warning)
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
/out:jniLegacyLibrary.dll
/ltcg
/dll
/implib:jniLegacyLibrary.lib
"/OUT:C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\sr
c\graf\JavaCpp\windows-x86\jniLegacyLibrary.dll"
/LIBPATH:C:\jdk1.7.0\lib
/LIBPATH:C:\jdk1.7.0\jre\bin\server
jvm.lib
jniLegacyLibrary.obj
Creating library jniLegacyLibrary.lib and object jniLegacyLibrary.exp
Generating code
Finished generating code
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp>java -cp javacpp.jar LegacyLibrary
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Documents and Sett
ings\Brian\Local Settings\Temp\javacpp92803190928456\jniLegacyLibrary.dll: Can't
find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
at java.lang.Runtime.load0(Runtime.java:792)
at java.lang.System.load(System.java:1059)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:422)
at com.googlecode.javacpp.Loader.load(Loader.java:372)
at com.googlecode.javacpp.Loader.load(Loader.java:319)
at LegacyLibrary$LegacyClass.<clinit>(LegacyLibrary.java:8)
at LegacyLibrary.main(LegacyLibrary.java:22)
C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello_JNI\src\graf
\JavaCpp>
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp>dir
驱动器C中的卷没有标签。
卷序列号是9099-0685
目录C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hell
o_JNI\src\graf\JavaCpp
2013年1月22日上午10:19。
2013年1月22日上午10:19。。
2012年11月4日09:00 PM 109991 javacpp.jar
2013年1月22日上午10:18 297 LegacyLibrary.h
2013年1月22日上午10:19:1058 LegacyLibrary.java
3个文件111346字节
2个目录36283334272字节可用
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp>javac-cp JavaCpp.jar LegacyLibrary.java
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp>java-jarjavacpp.jar库
生成源文件:C:\Documents and Settings\Brian\My Documents\Projects\Co
Hello\u JNI\src\graf\JavaCpp\jniLegacyLibrary.cpp的副本
生成库文件:C:\Documents and Settings\Brian\My Documents\Projects\Cop
Hello_JNI\src\graf\JavaCpp\windows-x86\jnilegacLibrary.dll的y
cl/IC:\jdk1.7.0\include/IC:\jdk1.7.0\include\win32“C:\Documents and Settings\
Brian\My Documents\Projects\Hello\u JNI\src\graf\JavaCpp\jniLegacyLibrary的副本。
cpp“/W3/Oi/O2/EHsc/Gy/GL/MD/LD/link”/OUT:C:\Documents and Settings\Bri
Hello\u JNI\src\graf\JavaCpp\windows-x86\jniLegac的\My Documents\Projects\Copy
yLibrary.dll“/LIBPATH:C:\jdk1.7.0\lib/LIBPATH:C:\jdk1.7.0\jre\bin\server jvm.l
ib
针对80x86的Microsoft(R)32位C/C++优化编译器版本15.00.21022.08
版权所有(C)微软公司。版权所有。
jniLegacyLibrary.cpp
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(113):警告C4996:“strcpy”:此函数或
变量可能是不安全的。请考虑使用SrcPyPiS。要禁用弃用,
使用CRT安全无警告。有关详细信息,请参阅联机帮助。
c:\ProgramFiles\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(74):s
ee“strcpy”声明
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(115):警告C4996:“strncpy”:此函数或
变量可能不安全。请考虑使用StncPyIs代替。禁用弃用
,使用“CRT安全”无警告。有关详细信息,请参阅联机帮助。
c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(157):
参见“strncpy”的声明
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(185):警告C4996:“strdup”:的POSIX名称
此项目已弃用。相反,使用ISO C++的一致名称:看见
有关详细信息,请参阅联机帮助。
c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\string.h(207):
请参阅“strdup”的声明
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(340):警告C4244:“参数”:从
“jlong”变为“size\u t”,可能会丢失数据
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(354):警告C4244:“参数”:从
“jlong”变为“size\u t”,可能会丢失数据
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(370):警告C4244:“参数”:从
“jlong”变为“size\u t”,可能会丢失数据
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(385):警告C4244:“参数”:从
“jlong”变为“size\u t”,可能会丢失数据
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jnilegacyllibrary.cpp(393):警告C4244:“参数”:从
“jlong”变为“size\u t”,可能会丢失数据
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp\jniLegacyLibrary.cpp(956):警告C4800:'jboolean':强制值t
o布尔值为“真”或“假”(性能警告)
Microsoft(R)增量链接器版本9.00.21022.08
版权所有(C)微软公司。版权所有。
/out:jniLegacyLibrary.dll
/ltcg
/动态链接库
/implib:jniLegacyLibrary.lib
“/OUT:C:\Documents and Settings\Brian\My Documents\Projects\Copy of Hello\u JNI\sr
c\graf\JavaCpp\windows-x86\jniLegacyLibrary.dll“
/LIBPATH:C:\jdk1.7.0\lib
/LIBPATH:C:\jdk1.7.0\jre\bin\server
jvm.lib
jniLegacyLibrary.obj
创建库jniLegacyLibrary.lib和对象jniLegacyLibrary.exp
生成代码
已完成生成代码
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI\src\graf的副本
\JavaCpp>java-cp JavaCpp.jar库
线程“main”java.lang.UnsatifiedLinkError中出现异常:C:\Documents and Sett
ings\Brian\Local Settings\Temp\javacpp92803190928456\jniLegacyLibrary.dll:无法
查找依赖库
位于java.lang.ClassLoader$NativeLibrary.load(本机方法)
位于java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1928)
位于java.lang.ClassLoader.loadLibrary(ClassLoader.java:1825)
位于java.lang.Runtime.load0(Runtime.java:792)
位于java.lang.System.load(System.java:1059)
位于com.googlecode.javacpp.Loader.loadLibrary(Loader.java:422)
位于com.googlecode.javacpp.Loader.load(Loader.java:372)
位于com.googlecode.javacpp.Loader.load(Loader.java:319)
在LegacyLibrary$LegacyClass。(LegacyLibrary.java:8)
位于LegacyLibrary.main(LegacyLibrary.java:22)
C:\Documents and Settings\Brian\My Documents\Projects\Hello\u JNI的副本\src\