2013-04-29 384 views
1

我正在尝试使用C++版本的voce语音识别API。它是一个用Java构建的API,也支持C++。但是,每当我试图去执行它,我收到错误无法打开包含文件:'jni.h':没有这样的文件或目录

C:\Users\yohan\Documents\Extra C++ Libs\Voice Recognition - Voce API\voce-0.9.1\src\c++\voce.h:34: error: C1083: Cannot open include file: 'jni.h': No such file or directory 

这是我的.pro内容

#------------------------------------------------- 
# 
# Project created by QtCreator 2013-04-26T12:59:05 
# 
#------------------------------------------------- 

QT  += core 

QT  -= gui 

TARGET = Tired 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 


SOURCES += main.cpp 

INCLUDEPATH += C:/opencv/build/include 
INCLUDEPATH += C:/opencv/build/include/opencv 
INCLUDEPATH += C:/Program Files/Java/jdk1.7.0/include/ 
INCLUDEPATH += C:/Program Files/Java/jdk1.7.0/include/win32 

LIBS += C:/opencv/build/x86/vc9/lib/opencv_calib3d240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_contrib240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_core240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_features2d240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_flann240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_highgui240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_imgproc240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_objdetect240.lib 
LIBS += C:/opencv/build/x86/vc9/lib/opencv_video240.lib 

HEADERS += 

这是代码Main.cpp的

#include "C:/Users/yohan/Documents/Extra C++ Libs/Voice Recognition - Voce API/voce-0.9.1/src/c++/voce.h" 

int main() 
{ 


} 

voce.h的一小部分代码如下给出

#ifndef VOCE_H 
#define VOCE_H 

// This file contains a C++ interface for Voce's Java functions. All of 
// the Java methods in Voce's API are instance methods, so we don't need 
// to handle class methods here. For documentation on the specific 
// functions, refer to the API documentation for the Java source. 

#include <jni.h> 
#include <iostream> 
#include <string> 

/// The namespace containing everything in the Voce C++ API. 
namespace voce 
{ 
#ifdef WIN32 
const std::string pathSeparator = ";"; 
#else 
const std::string pathSeparator = ":"; 
#endif 

    /// Contains things that should only be accessed within Voce. 
    namespace internal 
    { 
     /// Global instance of the JNI environment. 
     JNIEnv* gEnv = NULL; 

     /// Global instance of the Java virtual machine. 
     JavaVM *gJVM = NULL; 

//Code Continues.......................................... 

我该如何摆脱这个错误?我正在使用QT,它是使用Visual Studio 2010编译器的最新版本。

请帮忙!

+0

愚蠢的问题,但你已经安装做一个JDK? – john 2013-04-29 17:40:28

+0

@john:当然我:) :) – 2013-04-29 17:42:06

+0

“C:/ Program Files/Java/jdk1.7.0/include /”包含“jni.h”吗? – user93353 2013-04-29 17:42:37

回答

7

您应该引用包含空格的INCLUDEPATH部分。而不是做:

INCLUDEPATH += C:/Program Files/Java/jdk1.7.0/include/ 
INCLUDEPATH += C:/Program Files/Java/jdk1.7.0/include/win32 

你或许应该做:

INCLUDEPATH += "C:/Program Files/Java/jdk1.7.0/include/" 
INCLUDEPATH += "C:/Program Files/Java/jdk1.7.0/include/win32" 
+0

非常感谢,+1我:) – 2013-04-29 18:53:15

+0

找到jni.h没有任何回报,我在Ubuntu 13.04机器上安装了java 1.7。 – w2lame 2013-11-14 12:38:02

相关问题