使用CMake在构建目录中加载Ogre插件时出错

问题描述 投票:0回答:1

我创建了一个需要 Ogre 库的 CMake 项目。我用

vcpkg
安装了它,然后在我的
CMakeLists.txt
中使用它,如下所示:

cmake_minimum_required (VERSION ${PROJECT_CMAKE_VERSION})

project (dynamicmodeltester)

find_package (Boost COMPONENTS program_options REQUIRED QUIET)
find_package (imgui CONFIG REQUIRED)
find_package (unofficial-imguizmo CONFIG REQUIRED)
find_package (implot CONFIG REQUIRED)
find_package (OGRE REQUIRED COMPONENTS Bites CONFIG)

include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../../..)
include_directories (${Boost_INCLUDE_DIRS})

set (PROJECT_SRC
  Options/Application.cpp
  Options/Parser.cpp
  Application.cpp
  LoggerLoader.cpp
  main.cpp
  RepositoryLoader.cpp
  Viewer.cpp
)

add_executable (${PROJECT_NAME} ${PROJECT_SRC} ${VERSION_SRC})

target_link_libraries (
  ${PROJECT_NAME}
  PRIVATE
  imgui::imgui
  unofficial::imguizmo::imguizmo
  implot::implot
  OgreMain
  Codec_EXR
  OgreBites
  Codec_STBI
  ${Boost_LIBRARIES}
)

target_compile_features(${PROJECT_NAME} PRIVATE ${PROJECT_CXX_STANDARD})

set_target_properties (${PROJECT_NAME} PROPERTIES
  #WIN32_EXECUTABLE ON
  MACOSX_BUNDLE ON
)

我可以构建并运行该项目,但是当它启动时,Ogre 给出了以下错误:

Ogre::InternalErrorException::InternalErrorException:无法加载动态库C:/Environments/vcpkg/packages/ogre_x64-windows/debug/etc/ogre/../../plugins/ogre\Plugin_DotScene。 系统错误:找不到指定的模块。

我可以在我的 cmake 构建目录中的 vcpkg 构建库中看到缺少的库插件,位于

C:\my\project\build\debug\vcpkg_installed\x64-windows\plugins\ogre

将这些库复制到我的构建目录中的正确方法是什么,以便 Ogre 在执行我的程序时可以找到它们?

我不知道问题是否出在路径上,因为如果我复制并粘贴错误消息中出现的插件路径,我就会转到正确的目录;问题似乎是我的程序正在寻找

Plugin_DotScene
,而在目录中我可以找到
Plugin_DotScene_d.dll
。我不知道这是否是问题,因为我在发布模式下也有同样的问题,其中库名称中没有
_d
后缀。也许与
.dll
扩展有关?我还尝试手动将 vcpkg 插件目录中的所有文件复制到构建目录中,但没有任何变化。

c++ cmake vcpkg ogre
1个回答
0
投票

将这些库复制到我的构建目录中的正确方法是什么,以便 Ogre 在执行我的程序时可以找到它们?

这里是提示文档,步骤01.06。尝试通过plugins.cfg或plugins_d.cfg(用于调试版本)文件完成,并确保插件配置文件到您的执行项目文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.