Информация об изменениях

Сообщение Re[3]: Не могу собрать/скомпилить AGG/демки (Anti-Grain Geom от 15.08.2017 10:20

Изменено 15.08.2017 10:57 kov_serg

Re[3]: Не могу собрать/скомпилить AGG/демки (Anti-Grain Geom
Здравствуйте, An a Student, Вы писали:

AAS>Большое спасибо!

AAS>Если копипастить в консоль именно в таком виде (многострочное через "^"), то перед каждой новой строкой оно всовывает "Продолжить?\t" — это не критично?
AAS>Большинство файлов "*.o" появляется! Ура! Но всё ещё что-то не так:

  Батник сделай build-agg.cmd и build.cmd
build-agg.cmd
@echo off
path=mingw\bin;%path%

g++ -c -Iagg-2.5\include ^
    agg-2.5\font_win32_tt\agg_font_win32_tt.cpp ^
    agg-2.5\src\agg_arc.cpp ^
    agg-2.5\src\agg_arrowhead.cpp ^
    agg-2.5\src\agg_bezier_arc.cpp ^
    agg-2.5\src\agg_bspline.cpp ^
    agg-2.5\src\agg_curves.cpp ^
    agg-2.5\src\agg_embedded_raster_fonts.cpp ^
    agg-2.5\src\agg_gsv_text.cpp ^
    agg-2.5\src\agg_image_filters.cpp ^
    agg-2.5\src\agg_line_aa_basics.cpp ^
    agg-2.5\src\agg_line_profile_aa.cpp ^
    agg-2.5\src\agg_rounded_rect.cpp ^
    agg-2.5\src\agg_sqrt_tables.cpp ^
    agg-2.5\src\agg_trans_affine.cpp ^
    agg-2.5\src\agg_trans_double_path.cpp ^
    agg-2.5\src\agg_trans_single_path.cpp ^
    agg-2.5\src\agg_trans_warp_magnifier.cpp ^
    agg-2.5\src\agg_vcgen_bspline.cpp ^
    agg-2.5\src\agg_vcgen_contour.cpp ^
    agg-2.5\src\agg_vcgen_dash.cpp ^
    agg-2.5\src\agg_vcgen_markers_term.cpp ^
    agg-2.5\src\agg_vcgen_smooth_poly1.cpp ^
    agg-2.5\src\agg_vcgen_stroke.cpp ^
    agg-2.5\src\agg_vpgen_clip_polygon.cpp ^
    agg-2.5\src\agg_vpgen_clip_polyline.cpp ^
    agg-2.5\src\agg_vpgen_segmentator.cpp ^
    agg-2.5\src\ctrl\agg_bezier_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_cbox_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_gamma_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_gamma_spline.cpp ^
    agg-2.5\src\ctrl\agg_polygon_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_rbox_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_scale_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_slider_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_spline_ctrl.cpp ^
    agg-2.5\src\platform\win32\agg_platform_support.cpp ^
    agg-2.5\src\platform\win32\agg_win32_bmp.cpp

ar rs libagg.a ^
    agg_font_win32_tt.o ^
    agg_arc.o ^
    agg_arrowhead.o ^
    agg_bezier_arc.o ^
    agg_bspline.o ^
    agg_curves.o ^
    agg_embedded_raster_fonts.o ^
    agg_gsv_text.o ^
    agg_image_filters.o ^
    agg_line_aa_basics.o ^
    agg_line_profile_aa.o ^
    agg_rounded_rect.o ^
    agg_sqrt_tables.o ^
    agg_trans_affine.o ^
    agg_trans_double_path.o ^
    agg_trans_single_path.o ^
    agg_trans_warp_magnifier.o ^
    agg_vcgen_bspline.o ^
    agg_vcgen_contour.o ^
    agg_vcgen_dash.o ^
    agg_vcgen_markers_term.o ^
    agg_vcgen_smooth_poly1.o ^
    agg_vcgen_stroke.o ^
    agg_vpgen_clip_polygon.o ^
    agg_vpgen_clip_polyline.o ^
    agg_vpgen_segmentator.o ^
    agg_bezier_ctrl.o ^
    agg_cbox_ctrl.o ^
    agg_gamma_ctrl.o ^
    agg_gamma_spline.o ^
    agg_polygon_ctrl.o ^
    agg_rbox_ctrl.o ^
    agg_scale_ctrl.o ^
    agg_slider_ctrl.o ^
    agg_spline_ctrl.o ^
    agg_platform_support.o ^
    agg_win32_bmp.o

del *.o

build.cmd
@echo off
path=mingw\bin;%path%

g++ -ogradients.exe agg-2.5\examples\gradients.cpp -Iagg-2.5\include -L. -lagg -lgdi32


Директории в рабочей папке
mingw\              -- mingw установленный этим https://vorboss.dl.sourceforge.net/project/mingw/Installer/mingw-get-setup.exe
agg-2.5\            -- исходники из http://www.antigrain.com/agg-2.5.zip
build.cmd
build-agg.cmd
libgcc_s_dw2-1.dll  -- dll необходимые для запуска того что собирает mingw
libstdc++-6.dll     -- из mingw\binlibagg.a            -- соберётся после выполнения build-agg.cmd
gradients.exe       -- результат сборки


AAS>
AAS>..\src\platform\win32\agg_platform_support.cpp: In member function 'bool agg::platform_support::load_img(unsigned int, const char*)':
AAS>..\src\platform\win32\agg_platform_support.cpp:1305:56: error: '_stricmp' was not declared in this scope
AAS>             if(len < 4 || _stricmp(fn + len - 4, ".BMP") != 0)
AAS>                                                        ^
AAS>..\src\platform\win32\agg_platform_support.cpp: In member function 'bool agg::platform_support::save_img(unsigned int, const char*)':
AAS>..\src\platform\win32\agg_platform_support.cpp:1324:56: error: '_stricmp' was not declared in this scope
AAS>             if(len < 4 || _stricmp(fn + len - 4, ".BMP") != 0)
AAS>                                                        ^
AAS>

AAS>Как-то можно это исправить без правок исходников AGG? Всякие разные флаги компиляции из выборки Гугла не помогли...
Не используйте новые версии C++ добавте флаг -std=gnu++0x

Вообще странно оно из коробки собирается без проблем
g++ --version
g++ (MinGW.org GCC-6.3.0-1) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

А что мешает использовать Visual Studio 2008, или только компилятор c++ от неё, почему именно mingw?

ps: если работаете без ide попробуйте notepad2mod (специально для загрузочной флешки пересобирал на vs2005 такой вариант notepad2-mod-4.2.25.995-nt4 пускается даже на winnt4)
Re[3]: Не могу собрать/скомпилить AGG/демки (Anti-Grain Geom
Здравствуйте, An a Student, Вы писали:

AAS>Большое спасибо!

AAS>Если копипастить в консоль именно в таком виде (многострочное через "^"), то перед каждой новой строкой оно всовывает "Продолжить?\t" — это не критично?
AAS>Большинство файлов "*.o" появляется! Ура! Но всё ещё что-то не так:

  Батник сделай build-agg.cmd и build.cmd
build-agg.cmd
@echo off
path=mingw\bin;%path%

g++ -c -Iagg-2.5\include ^
    agg-2.5\font_win32_tt\agg_font_win32_tt.cpp ^
    agg-2.5\src\agg_arc.cpp ^
    agg-2.5\src\agg_arrowhead.cpp ^
    agg-2.5\src\agg_bezier_arc.cpp ^
    agg-2.5\src\agg_bspline.cpp ^
    agg-2.5\src\agg_curves.cpp ^
    agg-2.5\src\agg_embedded_raster_fonts.cpp ^
    agg-2.5\src\agg_gsv_text.cpp ^
    agg-2.5\src\agg_image_filters.cpp ^
    agg-2.5\src\agg_line_aa_basics.cpp ^
    agg-2.5\src\agg_line_profile_aa.cpp ^
    agg-2.5\src\agg_rounded_rect.cpp ^
    agg-2.5\src\agg_sqrt_tables.cpp ^
    agg-2.5\src\agg_trans_affine.cpp ^
    agg-2.5\src\agg_trans_double_path.cpp ^
    agg-2.5\src\agg_trans_single_path.cpp ^
    agg-2.5\src\agg_trans_warp_magnifier.cpp ^
    agg-2.5\src\agg_vcgen_bspline.cpp ^
    agg-2.5\src\agg_vcgen_contour.cpp ^
    agg-2.5\src\agg_vcgen_dash.cpp ^
    agg-2.5\src\agg_vcgen_markers_term.cpp ^
    agg-2.5\src\agg_vcgen_smooth_poly1.cpp ^
    agg-2.5\src\agg_vcgen_stroke.cpp ^
    agg-2.5\src\agg_vpgen_clip_polygon.cpp ^
    agg-2.5\src\agg_vpgen_clip_polyline.cpp ^
    agg-2.5\src\agg_vpgen_segmentator.cpp ^
    agg-2.5\src\ctrl\agg_bezier_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_cbox_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_gamma_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_gamma_spline.cpp ^
    agg-2.5\src\ctrl\agg_polygon_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_rbox_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_scale_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_slider_ctrl.cpp ^
    agg-2.5\src\ctrl\agg_spline_ctrl.cpp ^
    agg-2.5\src\platform\win32\agg_platform_support.cpp ^
    agg-2.5\src\platform\win32\agg_win32_bmp.cpp

ar rs libagg.a ^
    agg_font_win32_tt.o ^
    agg_arc.o ^
    agg_arrowhead.o ^
    agg_bezier_arc.o ^
    agg_bspline.o ^
    agg_curves.o ^
    agg_embedded_raster_fonts.o ^
    agg_gsv_text.o ^
    agg_image_filters.o ^
    agg_line_aa_basics.o ^
    agg_line_profile_aa.o ^
    agg_rounded_rect.o ^
    agg_sqrt_tables.o ^
    agg_trans_affine.o ^
    agg_trans_double_path.o ^
    agg_trans_single_path.o ^
    agg_trans_warp_magnifier.o ^
    agg_vcgen_bspline.o ^
    agg_vcgen_contour.o ^
    agg_vcgen_dash.o ^
    agg_vcgen_markers_term.o ^
    agg_vcgen_smooth_poly1.o ^
    agg_vcgen_stroke.o ^
    agg_vpgen_clip_polygon.o ^
    agg_vpgen_clip_polyline.o ^
    agg_vpgen_segmentator.o ^
    agg_bezier_ctrl.o ^
    agg_cbox_ctrl.o ^
    agg_gamma_ctrl.o ^
    agg_gamma_spline.o ^
    agg_polygon_ctrl.o ^
    agg_rbox_ctrl.o ^
    agg_scale_ctrl.o ^
    agg_slider_ctrl.o ^
    agg_spline_ctrl.o ^
    agg_platform_support.o ^
    agg_win32_bmp.o

del *.o

build.cmd
@echo off
path=mingw\bin;%path%

g++ -ogradients.exe agg-2.5\examples\gradients.cpp -Iagg-2.5\include -L. -lagg -lgdi32


Директории в рабочей папке
mingw\              -- 266Mb mingw установленный этим https://vorboss.dl.sourceforge.net/project/mingw/Installer/mingw-get-setup.exe
agg-2.5\            -- 4Mb исходники из http://www.antigrain.com/agg-2.5.zip
build.cmd
build-agg.cmd
libgcc_s_dw2-1.dll  -- dll необходимые для запуска того что собирает mingw
libstdc++-6.dll     -- из mingw\binlibagg.a            -- соберётся после выполнения build-agg.cmd
gradients.exe       -- результат сборки


AAS>
AAS>..\src\platform\win32\agg_platform_support.cpp: In member function 'bool agg::platform_support::load_img(unsigned int, const char*)':
AAS>..\src\platform\win32\agg_platform_support.cpp:1305:56: error: '_stricmp' was not declared in this scope
AAS>             if(len < 4 || _stricmp(fn + len - 4, ".BMP") != 0)
AAS>                                                        ^
AAS>..\src\platform\win32\agg_platform_support.cpp: In member function 'bool agg::platform_support::save_img(unsigned int, const char*)':
AAS>..\src\platform\win32\agg_platform_support.cpp:1324:56: error: '_stricmp' was not declared in this scope
AAS>             if(len < 4 || _stricmp(fn + len - 4, ".BMP") != 0)
AAS>                                                        ^
AAS>

AAS>Как-то можно это исправить без правок исходников AGG? Всякие разные флаги компиляции из выборки Гугла не помогли...
Не используйте новые версии C++ добавте флаг -std=gnu++0x

Вообще странно оно из коробки собирается без проблем
g++ --version
g++ (MinGW.org GCC-6.3.0-1) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

А что мешает использовать Visual Studio 2008, или только компилятор c++ от неё, почему именно mingw?

ps: если работаете без ide попробуйте notepad2mod (специально для загрузочной флешки пересобирал на vs2005 такой вариант notepad2-mod-4.2.25.995-nt4 пускается даже на winnt4)