Проблема с графическими примерами IUP

Я пытался запустить графические примеры IUP, приведенные по этой ссылке C или CPP примеры

например plot.C или mathglsamples.c в среде Windows MinGW X64 прямо из адаптации исходного кода без модификации как таковой. Однако документация настолько плоха, что я столкнулся со стеной. После неоднократных попыток я, наконец, начал работу с IUP, CD и основной динамической библиотекой IM.

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

Было бы намного проще запустить это в среде IDE netbeans, просто указав все эти заголовочные файлы и необходимые библиотеки.

Ниже приведен Cmake, просто нужно убедиться, что все эти библиотеки .dll скопированы в ту же выходную папку, где находятся исполняемые файлы.

# cmake_minimum_required(VERSION <specify CMake version here>)
cmake_minimum_required(VERSION 3.10)
project(IUP)
#set (CMAKE_LEGACY_CYGWIN_WIN32 0)
set(CMAKE_CXX_STANDARD 17)



set(IUPDir "C:/iup-3.24_Win64_dllw4_lib")
set(CDDir "C:/cd-5.11.1_Win64_dllw4_lib")
set (IMDir "C:/im-3.12_Win64_dllw4_lib")


include_directories(${IUPDir})
include_directories(${IUPDir}/include)

include_directories(CDDir)
include_directories(${CDDir}/include)

include_directories(${IMDir}/include)

link_directories(${IUPDir})
link_directories(${CDDir})


add_executable(IUP mathglsamples.c)
#add_executable(IUP plot.cpp)

find_package(iup.dll)
find_package(iupimglib.dll)


add_custom_command(TARGET IUP POST_BUILD        # Adds a post-build event to MyTest
        COMMAND ${CMAKE_COMMAND} -E copy_if_different  # which executes "cmake - E copy_if_different..."
        "${IUPDir}/iup.dll"
        "${IUPDir}/iupimglib.dll"
        "${IUPDir}/iup_plot.dll"
        "${IUPDir}/iupcontrols.dll"
        "${IUPDir}/iupgl.dll"
        "${IUPDir}/iupcd.dll"
        "${IUPDir}/ftgl.dll"
        "${IUPDir}/iup_mglplot.dll"
        "${IUPDir}/iupim.dll"
        "${IUPDir}/zlib1.dll"

        "${CDDir}/cd.dll"
        "${CDDir}/cdgl.dll"
        "${CDDir}/freetype6.dll"
        "${CDDir}/cdcontextplus.dll"


        "${IMDir}/im.dll"
        "${IMDir}/im_process.dll"
        # <--this is in-file
        $<TARGET_FILE_DIR:IUP>

        )

target_include_directories(IUP PUBLIC ${IUPDir})
target_include_directories(IUP PUBLIC ${CDDir})
target_include_directories(IUP PUBLIC ${IMDir})


target_link_libraries (IUP  PUBLIC

        "${IUPDir}/iup.dll"
        "${IUPDir}/iupimglib.dll"
        "${IUPDir}/iup_plot.dll"
        "${IUPDir}/iupcontrols.dll"
        "${IUPDir}/iupgl.dll"
        "${IUPDir}/iupcd.dll"
        "${IUPDir}/ftgl.dll"
        "${IUPDir}/iup_mglplot.dll"
        "${IUPDir}/iupim.dll"
        "${IUPDir}/zlib1.dll"

        "${CDDir}/cd.dll"
        "${CDDir}/cdgl.dll"
        "${CDDir}/freetype6.dll"
        "${CDDir}/cdcontextplus.dll"


        "${IMDir}/im.dll"
        "${IMDir}/im_process.dll"


        )

Благодарность


iup
person TSG anti SO dark forces    schedule 19.05.2018    source источник


Ответы (1)


в настоящее время на веб-сайте нет явных требований к библиотеке

Это не правда. На веб-сайте IUP есть много документации по созданию приложений IUP (включая учебник и руководства для нескольких IDE):

http://iup.sourceforge.net/ или http://www.tecgraf.puc-rio.br/iup/

Для сюжетного примера сложность сильно увеличивается, потому что задействовано несколько библиотек. Использование DLL вместо статических библиотек также усложняет задачу. Но зависимости есть. Чтобы заявить, что:

документация такая плохая

Реально подорвать нашу работу. Я предлагаю вам, когда вы вносите свой вклад в любую библиотеку с открытым исходным кодом, начинать с «отсутствует документация, что ...».

Если вы обнаружите некоторые зависимости, которые не описаны, сообщите нам об этом. Вы можете сообщать о проблемах, используя электронную почту [email protected] или в нашем списке рассылки.

Спасибо, что поделились своим make-файлом CMake.

person Antonio Scuri    schedule 19.05.2018
comment
Извините, если вы не можете указать на очень точную документацию по этому вопросу, я все равно думаю, что письменное повествование IUP все еще чертовски плохо, почему нет простого руководства по сборке во время выполнения о том, как запускать эти примеры, написанные в первую очередь, почему пользователь должен выяснять повторяющийся процесс отладки, чтобы определить, какие эти чертовы библиотеки нужны для запуска этих графических примеров? - person TSG anti SO dark forces; 19.05.2018