无法找到或打开Visual Studio 2012的PDB文件

时间:2013-12-28 14:07:18

标签: java c++ jar jvm java-native-interface

我想从C ++运行jar文件

我写了这段代码:

#include "stdafx.h"
#include <iostream>
#include <strsafe.h>
#include <stdexcpt.h>
#include "jni.h"
#include <conio.h>
#include <Windows.h>
using namespace std;

#pragma comment (lib,"C:\\Users\\Hilla\\Documents\\Visual Studio 2012\\helloworld\\helloworld\\jvm.lib")

int main()

{  
    JavaVM *jvm;
    JNIEnv *env;
    JavaVMInitArgs vm_args;

    JavaVMOption options[3];
    options[0].optionString = "-Djava.compiler=NONE";
    options[1].optionString="-Djava.class.path=C:\\Users\\Hilla\\Documents\\Visual      
        Studio 2012\\helloworld\\Debug\\hello.jar";
    options[2].optionString="verbose.jni";
    vm_args.version=JNI_VERSION_1_6;
    vm_args.nOptions=3;
    vm_args.options=options;
    vm_args.ignoreUnrecognized=0;
    int ret=JNI_CreateJavaVM(&jvm,(void**)&env,&vm_args);
    printf("hilla");



}

我使用x64编译器。 我将JVM lim添加到系统路径。

它还在给我这个错误:

  

'helloworld.exe'(Win32):已加载'C:\ Users \ Hilla \ Documents \ Visual Studio 2012 \ helloworld \ x64 \ Debug \ helloworld.exe'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ ntdll.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ kernel32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ KernelBase.dll'。符号已加载。
  'helloworld.exe'(Win32):已加载'C:\ Program Files \ Java \ jdk1.7.0_45 \ jre \ bin \ server \ jvm.dll'。无法找到或打开PDB文件   'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ msvcp110d.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ msvcr110d.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ user32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ advapi32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ wsock32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ winmm.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ psapi.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ msvcr100.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ gdi32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ msvcrt.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ sechost.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ rpcrt4.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ ws2_32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ winmmbase.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ nsi.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ cfgmgr32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ devobj.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ imm32.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ msctf.dll'。符号已加载。
  'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ nvinitx.dll'。无法找到或打开PDB文件   'helloworld.exe'(Win32):已加载'C:\ Program Files \ NVIDIA Corporation \ coprocmanager \ detoured.dll'。无法找到或打开PDB文件。 'helloworld.exe'(Win32):已加载'C:\ Program Files \ NVIDIA Corporation \ coprocmanager \ Nvd3d9wrapx.dll'。无法找到或打开PDB文件   'helloworld.exe'(Win32):加载'C:\ Windows \ System32 \ setupapi.dll'。符号已加载。
  'helloworld.exe'(Win32):已加载'C:\ Program Files \ NVIDIA Corporation \ coprocmanager \ nvdxgiwrapx.dll'。无法找到或打开PDB文件。

     

程序'[7688] helloworld.exe'已退出,代码为0(0x0)。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

PDB Visual Studio 使用的调试信息文件。这些是系统 DLL ,您没有调试符号。转到 Tools->Options->Debugging->Symbols 并选中复选框 Microsoft Symbol Servers ,Visual Studio将自动下载PDB。

请阅读针对 VS 2010 here

发布的类似问题