Выпуск графических примеров IUP - PullRequest
0 голосов
/ 19 мая 2018

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

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

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

Было бы намного проще запустить это в 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"


        )

спасибо

1 Ответ

0 голосов
/ 19 мая 2018

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

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

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

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

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

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

Если вы обнаружите некоторые зависимости, которые не описаны, пожалуйста, сообщите нам об этом.Вы можете сообщать о проблемах, используя электронную почту iup@tecgraf.puc-rio.br или в нашем списке рассылки.

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

...