我创建了一个需要 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 插件目录中的所有文件复制到构建目录中,但没有任何变化。
将这些库复制到我的构建目录中的正确方法是什么,以便 Ogre 在执行我的程序时可以找到它们?
这里是提示文档,步骤01.06。尝试通过plugins.cfg或plugins_d.cfg(用于调试版本)文件完成,并确保插件配置文件到您的执行项目文件夹中。