2016-11-07 8 views
0

Ну, я новичок в CMake и хочу изменить код моделирования полета в eclipse вместо визуальной студии. С этой целью я загрузил исходный код Simgear, CMake, Boost, открытый граф сцены и openalsoft.Связывание библиотек Openscenegraph для CMake

Теперь у меня есть все доступные данные, но я не знаю, где разместить некоторые из этих библиотек. В результате, когда я запускаю CMake и даю ссылку на мой код FlightGear, он жалуется, что библиотеки openscenegraph не установлены.

Пожалуйста, помогите мне, где мне нужно поместить все эти файлы, чтобы преобразовать мой код в затмение с помощью CMake. Я уже установил библиотеки boost и openal. Только проблема связана с библиотеками openscenegraph, которые я помещал в файлы программы по следующему пути «C: \ Program Files \ OpenSceneGraph-3.4.0», но CMake не может получить к нему доступ. Код ошибки

Eclipse version is set to 3.6 (Helios). Adjust CMAKE_ECLIPSE_VERSION if this is wrong. 
 
version is 2016 dot 3 dot 1 
 
ignoring: ^C:/Media/Project/study material/flight gear/simgear-2016.3.1/.git;\\.gitignore;Makefile.am;~$; 
 
Library installation directory: lib 
 
Boost version: 1.62.0 
 
SimGear mode: NORMAL 
 
Found OpenAL: C:/Program Files/OpenAL/OpenAL32.lib 
 
Sound support: ENABLED 
 
Could NOT find osgText (missing: OSGTEXT_LIBRARY OSGTEXT_INCLUDE_DIR) 
 
Could NOT find osgSim (missing: OSGSIM_LIBRARY OSGSIM_INCLUDE_DIR) 
 
Could NOT find osgDB (missing: OSGDB_LIBRARY OSGDB_INCLUDE_DIR) 
 
Could NOT find osgParticle (missing: OSGPARTICLE_LIBRARY OSGPARTICLE_INCLUDE_DIR) 
 
Could NOT find osgGA (missing: OSGGA_LIBRARY OSGGA_INCLUDE_DIR) 
 
Could NOT find osgViewer (missing: OSGVIEWER_LIBRARY OSGVIEWER_INCLUDE_DIR) 
 
Could NOT find osgUtil (missing: OSGUTIL_LIBRARY OSGUTIL_INCLUDE_DIR) 
 
Could NOT find osg (missing: OSG_LIBRARY OSG_INCLUDE_DIR) 
 
Could NOT find OpenThreads (missing: OPENTHREADS_LIBRARY OPENTHREADS_INCLUDE_DIR) 
 
CMake Error at C:/Program Files/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message): 
 
    Could NOT find OpenSceneGraph (missing: OPENSCENEGRAPH_LIBRARIES 
 
    OPENSCENEGRAPH_INCLUDE_DIR OSGTEXT_FOUND OSGSIM_FOUND OSGDB_FOUND 
 
    OSGPARTICLE_FOUND OSGGA_FOUND OSGVIEWER_FOUND OSGUTIL_FOUND OSG_FOUND 
 
    OPENTHREADS_FOUND) (Required is at least version "3.2.0") 
 
Call Stack (most recent call first): 
 
    C:/Program Files/CMake/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE) 
 
    C:/Program Files/CMake/share/cmake-3.7/Modules/FindOpenSceneGraph.cmake:223 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) 
 
    CMakeLists.txt:243 (find_package) 
 

 

 
Configuring incomplete, errors occurred! 
 
See also "C:/Users/shajeeh/Documents/CMake/CMakeFiles/CMakeOutput.log".

+0

Дубликат [Компиляция кода полета в затмении с использованием cmake] (http://stackoverflow.com/questions/40373379/compilation-of- flightgear-code-in-eclipse-using-cmake) – wasthishelpful

+0

Какой ** подход ** вы используете для поиска библиотеки OpenAL [в этом вопросе] (http://stackoverflow.com/questions/40373379/compilation-of-flightgear- код-в-затмение-с использованием CMake-)? Вы пробовали (и как) этот подход для библиотеки OSG? Существует много библиотек, используемых для разработки под CMake, и имеющих разные вопросы для ** каждой ** библиотеки ... это не является целью переполнения стека. – Tsyvarev

+0

Я ввел фрагмент кода в Findopenal.cmake, чтобы обратиться к местоположению моих библиотек, и это действительно сработало. Я попытался сделать то же самое для findopenscenegraph.cmake, но он дал ошибки как ...... Не удалось найти файл конфигурации пакета, предоставленный «C:/Program Файлы/OpenSceneGraph-3.4.0/build» с любым из следующие имена: C:/Program Files/OpenSceneGraph-3.4.0/buildConfig.cmake c:/program files/openscenegraph-3.4.0/build-config.cmake –

ответ

0

Я не эксперт CMake, здесь некоторые вещи, которые я сделал для того, чтобы создать проект ROS & OSG в Linux:

добавить переменную окружения (если он еще не там) в файл .bashrc:

экспорт PATH = $ {PATH}: .../OpenSceneGraph-3.4.0/бен (ваш абсолютный путь)

затем в CMake файла добавить:

FIND_PACKAGE (OpenSceneGraph КОМПОНЕНТЫ osgSim osgUtil osgDB osgFX osgGA osgTerrain osgViewer osgText osgWidget osgManipulator OSG osgShadow)

target_link_libraries (name_of_your_executable $ {PROJECT_NAME} $ {OPENSCENEGRAPH_LIBRARIES})

Для дополнительная информация Проверка документации CMake here и here