Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plugins 使用FireBreatch中的CMake向NPAPI插件项目添加依赖Dll_Plugins_Cmake_Npapi_Firebreath - Fatal编程技术网

Plugins 使用FireBreatch中的CMake向NPAPI插件项目添加依赖Dll

Plugins 使用FireBreatch中的CMake向NPAPI插件项目添加依赖Dll,plugins,cmake,npapi,firebreath,Plugins,Cmake,Npapi,Firebreath,插件必须调用外部依赖dll文件中的函数。 我按照教程做了以下工作,但仍然没有成功 我已在项目根目录中粘贴了一个sample.dll文件 我已将以下配置添加到projectDef.cmake(projects\pluginest\Win\projectDef.cmake): 我使用 “firebreath\prep2010.cmd项目生成” 生成的firebreath解决方案的项目属性->配置属性->链接器->输入->其他依赖项具有适当的dll绝对路径 我在pluginestapi.cpp

插件必须调用外部依赖dll文件中的函数。 我按照教程做了以下工作,但仍然没有成功

  • 我已在项目根目录中粘贴了一个sample.dll文件

  • 我已将以下配置添加到projectDef.cmake(projects\pluginest\Win\projectDef.cmake):

  • 我使用 “firebreath\prep2010.cmd项目生成”

    • 生成的firebreath解决方案的项目属性->配置属性->链接器->输入->其他依赖项具有适当的dll绝对路径
  • 我在pluginestapi.cpp中添加了以下内容:

    include "sample.h"
    
生成错误:

无法打开包含文件“sample.h”:没有此类文件或目录

dll文件是头文件和库文件的包。我能够使用JNA成功地调用dll

我是一个java开发人员,在C++编程方面没有太多的经验。我相信我遗漏了一些基本的东西


谢谢

您需要了解的主要问题是,您没有实际链接到DLL;相反,您可以链接到DLL附带的.lib文件,该文件将在后台为您加载DLL。无论您在哪里构建依赖dll,您都会发现还有一个.lib文件;将其指定为目标链接库中的链接目标

接下来,如果希望它打开包含文件“sample.h”,则需要使用cmake命令将sample.h的路径添加到包含目录中

我怀疑这是一个输入错误,但您也指定了sample.dll两次;一次在库路径中,然后一次在目标链接库调用中。这是行不通的,因为它会导致它尝试链接到${CMAKE_CURRENT_SOURCE_DIR}/sample.dll/debug/sample.dll

当所有其他操作都失败时,在VisualStudio中打开项目属性(因为这就是您正在使用的),并查看有哪些库和包含目录;这通常会帮助您了解cmake实际上在做什么

希望有帮助

include "sample.h"