Я пытаюсь настроить среду для разработки приложения 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
?