vc++JNI错误LNK2019:未解析的外部符号
vc++ JNI error LNK2019: unresolved external symbol
您好。我正在尝试编译一个库,以便在Java中使用它。但得到错误"错误LNK2019:未解析的外部符号"。在c++中我不太理解,请寻求帮助。开始cpp文件
//ftrJavaScanAPI.cpp : Defines the entry point for the DLL application.
//
#ifdef _WINDOWS
#pragma warning (disable:4996)
#endif
#include "C:ftrJavaScanAPIftrScanAPI.h"
#include "ftrJavaScanAPI.h"
#ifdef FTR_OS_UNIX
#include <string.h>
#endif
FTRHANDLE hDevice = NULL;
FTRSCAN_IMAGE_SIZE m_ImageSize;
FTR_DWORD m_dwErrCode = 0;
#ifdef _WINDOWS
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
#endif
JNIEXPORT jboolean JNICALL Java_com_Futronic_ScanApiHelper_Scanner_OpenDevice(JNIEnv *env, jobject obj)
{
hDevice = ftrScanOpenDevice();
if( hDevice == NULL )
return JNI_FALSE;
return JNI_TRUE;
}
开始.h文件:
#include <C:Program FilesJavajdk1.7.0_05includejni.h>
/* Header for class com_Futronic_ScanApiHelper_Scanner */
#ifndef _Included_com_Futronic_ScanApiHelper_Scanner
#define _Included_com_Futronic_ScanApiHelper_Scanner
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_Futronic_ScanApiHelper_Scanner
* Method: OpenDevice
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_com_Futronic_ScanApiHelper_Scanner_OpenDevice
(JNIEnv *, jobject);
调试时出错
1> ftrJavaScanAPI.obj:错误LNK2019:函数Java_com_Futronic_ScanApiHelper_Scanner_OpenDevice 中引用的未解析外部符号ftrScanOpenDevice
我知道有必要添加代码从DLL中导出一些符号,以便导出库,但不知道如何做到
链接到DLL中的内容。您的源文件不包含函数"ftrScanOpenDevice",请确保将适当的.LIB文件添加到生成中。
在介绍DLL的复杂性之前。让你可以编译并运行这个简单的程序:
#include "C:ftrJavaScanAPIftrScanAPI.h"
int main ()
{
FTRHANDLE hDevice = ftrScanOpenDevice();
}
请确保您可以编译并生成EXE文件。此外,您的可执行文件应该在没有错误的情况下运行。它不应该产生任何输出。如果找不到有关DLL文件的错误,请确保在路径中或包含EXE文件的同一目录中有适当的DLL文件。此外,请确保您的最终JNI程序具有相同的DLL。
还有一点,您不应该硬编码包含文件的绝对名称。使用Visual Studio设置将"FTRScanAPI"添加到包含路径和库路径中。所以你的包含指令应该只是
#include "ftrScanAPI.h"
相关文章:
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 类模板上一个特定函数的未解析外部符号
- LNK2001:未解析的外部符号public:static类std::vector