undefined ссылка на `cv :: imread (cv :: String const & amp ;, int) '[duplicate]

Вы правы, JavaFX (по состоянию на 2.1) не поддерживает сериализацию компонентов с использованием интерфейса Java Serializable - поэтому вы не можете использовать этот механизм.

JavaFX может десериализоваться из FXML-документ, использующий метод FXMLLoader.load () .

Трюк заключается в том, как записать ваши существующие компоненты и состояния в FXML?

Существует обсуждение форума о сериализации в FXML.

В настоящее время на платформе, которая выполняет сериализацию FXML, нет ничего публичного. По-видимому, создание родового сценария => сериализатор FXML - довольно сложная задача (и для этого я не знаю публичного стороннего API). Было бы не слишком сложно перебирать сценарий и записывать FXML для ограниченного набора компонентов и атрибутов.

2
задан Sterling 11 March 2017 в 23:40
поделиться

3 ответа

Эти переменные получены через вызовы find_package(XXX).

Такие вызовы перенаправляются, зависят от библиотеки, либо от скрипта FindXXX.cmake (поставляется с CMake или содержится в проекте, который его использует), либо к скрипту XXXConfig.cmake (поставляется с самой библиотекой).

Итак, для определения имен значимой переменной вам необходимо проконсультироваться с соответствующим скриптом. Как правило, интерфейс скрипта (переменные ввода-вывода) описывается в комментариях в начале сценария.

Документация для скриптов FindXXX.cmake, поставляемых с CMake, может быть прочитана на страницах документации CMake о модули .

2
ответ дан Tsyvarev 15 August 2018 в 14:54
поделиться
  • 1
    Благодаря! (Принимая это, потому что он был первым ...) Где находится FindXXX.cmake, который поставляется вместе с CMake? – Sterling 12 March 2017 в 00:09

У вас нет. Это зависит от модуля find для библиотеки.

См. Здесь.

В разделе «Написание модулей поиска» вы видите, что переменные заданы в модуле. При проверке модуля FindOpenGL.cmake в каталоге CMake-Modules вы увидите имя переменной.

1
ответ дан Daniel 15 August 2018 в 14:54
поделиться
  • 1
    Где находится каталог CMake-Modules? (Ubuntu 16.04) Я не могу найти его под / usr / lib / cmake. – Sterling 12 March 2017 в 00:07
  • 2
    @Sterling Согласно статье, она находится под / usr / share / cmake / Modules . Я использую CLion, для моей установки он был расположен в каталоге CLION, возможно, ваш пакет также связан с IDE (в случае, если вы используете его). – Daniel 12 March 2017 в 00:09
  • 3
    Ах, ладно, да, я нашел свою в /usr/share/cmake-2.8/Modules. Благодаря!! – Sterling 12 March 2017 в 00:26

Помимо ознакомления с документацией модуля поиска, вы также можете использовать свойство CMake VARIABLES , чтобы дать вам переменные, которые были определены вашим вызовом find_package() .

Для примера следующий код:

cmake_minimum_required(VERSION 3.2)

project(FindPackageVars)

get_directory_property(_vars_before VARIABLES)
find_package(OpenGL)
get_directory_property(_vars VARIABLES)

list(REMOVE_ITEM _vars _vars_before ${_vars_before})
foreach(_var IN LISTS _vars)
    message(STATUS "${_var} = ${${_var}}")
endforeach()

Выводит на мою машину:

-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- FIND_PACKAGE_MESSAGE_DETAILS_OpenGL = [/usr/lib/x86_64-linux-gnu/libGL.so][/usr/include][v()]
-- OPENGL_FOUND = TRUE
-- OPENGL_GLU_FOUND = YES
-- OPENGL_INCLUDE_DIR = /usr/include
-- OPENGL_INCLUDE_PATH = /usr/include
-- OPENGL_LIBRARIES = /usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so
-- OPENGL_LIBRARY = /usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so
-- OPENGL_XMESA_FOUND = NO
-- OPENGL_gl_LIBRARY = /usr/lib/x86_64-linux-gnu/libGL.so
-- OPENGL_glu_LIBRARY = /usr/lib/x86_64-linux-gnu/libGLU.so
-- OPENGL_xmesa_INCLUDE_DIR = OPENGL_xmesa_INCLUDE_DIR-NOTFOUND
2
ответ дан Florian 15 August 2018 в 14:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: