Dyld не загружает библиотеку Огре - PullRequest
2 голосов
/ 28 марта 2019

Я пытаюсь настроить среду для разработки приложения Ogre3D.Я вручную скомпилировал Ogre в папку /opt/Ogre3D/ogre-1.11.5/build и создал проект CMake в CLion с таким содержимым:

cmake_minimum_required(VERSION 3.13)
project(sample)

set(CMAKE_CXX_STANDARD 14)
set(OGRE_DIR /opt/Ogre3D/ogre-1.11.5/build/sdk/cmake)

# specify which version and components you need
find_package(OGRE 1.11 REQUIRED COMPONENTS Bites RTShaderSystem)

# copy resource.cfg next to our binaries where OGRE looks for it
file(COPY ${OGRE_CONFIG_DIR}/resources.cfg DESTINATION ${CMAKE_BINARY_DIR})

add_executable(sample main.cpp)
target_link_libraries(sample ${OGRE_LIBRARIES})

, когда я пытаюсь запустить его, компиляция в порядке, но затем он не может выполнить его:

/Users/diego/CLionProjects/ogre/sample/cmake-build-debug/sample
dyld: Library not loaded: @executable_path/../Frameworks/OgreBites.framework/Versions/1.11.5/OgreBites
  Referenced from: /Users/diego/CLionProjects/ogre/sample/cmake-build-debug/sample
  Reason: image not found

Process finished with exit code 6

Я посмотрел на otool -l /opt/Ogre3D/ogre-1.11.5/build/lib/macosx/OgreBites.framework/Versions/1.11.5/OgreBites и есть команда LC_ID_DYLIB с именем @executable_path/../Frameworks/OgreBites.framework/Versions/1.11.5/OgreBites, которая соответствует пути, указанному в ошибке времени выполнения.Однако я не знаю, какой шаг предпринять сейчас, так как у меня мало опыта с собственным разрешением библиотеки в macOS.

Обновление:

Выполнение команды install_name_tool делаеткомпоновщик найдет библиотеку, но затем не получится со следующей.Я предполагаю / надеюсь, что в CMake есть возможность передать его компилятору, чтобы двоичные файлы, созданные во время компиляции Ogre, не использовали директиву @execute_path?

...