我是一名 Java 程序员,请原谅我对 C++ 世界的了解。我正在尝试为我的项目中的 JNI 内容构建一个 DLL;其中 DLL 引用另外 2 个具有 .dll
和 .lib
文件的 dll。
我搜索了一下,似乎我需要将 .lib 文件包含在“附加库目录”中,我这样做了;此外,我将文件夹(包含 .lib
和 .dll
文件)添加到项目属性中 VC++ Directories 项下的“Library Directories”。但是当我构建项目时,我仍然收到链接器的警告,说找不到函数实现。
示例项目包含在 DLL 提供程序中,它是一个 win32 exe,他们通过在项目中包含 lib 文件而不添加到任何目录来成功构建;所以我尝试做同样的事情,但它仍然不起作用。
我检查了我的链接器命令行如下。请有人好心帮我解决这个问题。
/OUT:"F:\Projects\hf\MyProject\x64\Debug\MyProject.dll" /MANIFEST /NXCOMPAT /PDB:"F:\Projects\MyProject\x64\Debug\MyProject.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /IMPLIB:"F:\Projects\MyProject\x64\Debug\MyProject.lib" /DEBUG /DLL /MACHINE:X64 /INCREMENTAL /PGD:"F:\Projects\MyProject\x64\Debug\MyProject.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Debug\MyProject.dll.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"RelativePathToLibFolder\customLib.lib" /LIBPATH:"RelativePathToLibFolder\customLib.lib" /TLBID:1
最佳答案
没错。仅供引用 - 我发现了这个问题。这是因为 dll
是 win32 dll,但我已将构建配置设置为 x64。错误消息可能会更好,Microsoft ...
关于c++ - 使用 Visual Studio 构建 JNI dll 时出现链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048479/