为什么我会收到此错误?

时间:2011-08-27 09:02:08

标签: java c java-native-interface

编辑后

我收到此错误

1>     Creating library D:\Jni tester\Debug\Jni tester.lib and object D:\Jni tester\Debug\Jni tester.exp
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>D:\Jni tester\Debug\Jni tester.exe : fatal error LNK1120: 1 unresolved externals

当我运行以下代码时:

#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"

JNIEXPORT void JNICALL 
 Java_HelloWorld_print( JNIEnv *env , jobject obj) {
printf("Hello World!\n");
return;
 }

这是头文件HelloWorld.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    print
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloWorld_print
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

为什么我会收到此错误?

1 个答案:

答案 0 :(得分:3)

JNIENv应为JNIEnv(小写字母n),如此Getting Started指南所示。

编辑:从您的错误看来,您应该将项目定义为DLL,在您尝试创建可执行文件时,它会查找main方法。