Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Компиляция AdvanceComp


Автор: lorents 25.9.2011, 18:30
Добрый вечер!
Подскажите, пожалуйста, как скомпилировать проект http://mmbuilder.ru/_fr/16/advancecomp.7z?

Автор: Annuta 25.9.2011, 18:48
Вопрос наверно не для этой темы ))
В общем случае - распаковываем папку,
1. разрешения для файлов в папке chmod 777 *
2. классические действия ./configure который создаст для нас Makefile
3. make
...если возникают ошибки  - гуглим ...  smile

Автор: lorents 25.9.2011, 19:02
Annuta, 
Цитата(Annuta @  25.9.2011,  18:48 Найти цитируемый пост)
1. разрешения для файлов в папке chmod 777 *

не совсем понял это действие, если честно я не знаю через какую программу компилировать, я скачал MinGW, но не знаю как заставить его работать

Автор: lorents 16.4.2012, 11:59
Добрый день!
Подскажите, как скомпилировать advancecomp-1.15?

Автор: xvr 17.4.2012, 14:39
Цитата(lorents @  16.4.2012,  11:59 Найти цитируемый пост)
Подскажите, как скомпилировать advancecomp-1.15?

Пойти на Linux, потом прочесть файл INSTALL из корня архива - там все написанно

Если хотите сделать это все на Windows, вам придется превратить ее в Unix (например с помощью cygwin'а)

Автор: lorents 17.4.2012, 22:41
xvr, Если не трудно, вы не могли бы  поподробнее рассказать.
Мне просто очень нужен данный проект.

Автор: xvr 18.4.2012, 10:09
Идете http://www.cygwin.com/install.html, скачиваете setup.exe и запускаете. После установки запускаете шелл из cygwin'а. Идете в нем туда, где у вас лежит распакованный дистрибутив, и вводите 2 команды - ./configure и потом make

Автор: lorents 18.4.2012, 11:29
xvr, при вводе это команды make, выдает что команда не найдена

Автор: lorents 18.4.2012, 23:36
С cygwin ничего у меня не вышло, решил использовать MinGW.
Вот что получилось

Он требует библиотеку zlib, подскажите, куда ее класть?

Автор: xvr 19.4.2012, 19:59
Цитата(lorents @  18.4.2012,  23:36 Найти цитируемый пост)
Он требует библиотеку zlib, подскажите, куда ее класть?

У MingW не знаю, в cygwin'е достаточно просто поставить необходимый пакет (в инсталяторе)

PS. Под MingW может совсем не собраться - ваша программа требует файла unistd.h, это чисто Unix'овый файл, в MingW его может не быть

Автор: lorents 19.4.2012, 21:10
xvr, сейчас попробую еще раз, спасибо.

Автор: boostcoder 19.4.2012, 21:23
Цитата(xvr @  19.4.2012,  19:59 Найти цитируемый пост)
PS. Под MingW может совсем не собраться - ваша программа требует файла unistd.h, это чисто Unix'овый файл, в MingW его может не быть

да Вы что?!
MinGW - это компилятор с POSIX уклоном.

Добавлено через 56 секунд
по последнему скрину видно, что нет zlib`а в системе.

Автор: lorents 19.4.2012, 22:41
boostcoder, а куда библиотеку zlib класть?

Автор: boostcoder 19.4.2012, 22:54
никуда ее класть не надо.
выполни: ./configure --prefix=/usr/local && make && make install

Автор: lorents 19.4.2012, 23:52
boostcoder, спасибо.

Все разобрался, всем спасибо!

Автор: lorents 23.11.2014, 13:37
добрый день!
Подскажите, пожалуйста, как можно компилировать http://advancemame.sourceforge.net/comp-download.html, но с минимальным размером?

Я компилирую через Mingw

Автор: lorents 16.5.2015, 13:31
добрый день!
Подскажите, пожалуйста, как можно компилировать http://advancemame.sourceforge.net/beta/ для Windows с максимальной производительностью?

Для компиляции я использую MSYS2. Сейчас я компилирую

Код

$ ./autogen.sh
$ LDFLAGS='-static' ./configure
$ make
$ strip *.exe 

Автор: xvr 16.5.2015, 21:37
Цитата(lorents @  16.5.2015,  13:31 Найти цитируемый пост)
Подскажите, пожалуйста, как можно компилировать AdvanceCOMP для Windows с максимальной производительностью?

Запустите ./configure --help - он напишет все опции конфигурации. Выберите те, что вам больше понравятся smile

Автор: lorents 17.5.2015, 01:10
xvr, я это понимаю, но я не знаю какие параметры указать, чтобы была максимальная производительность?

Автор: xvr 18.5.2015, 11:35
Так как у меня нет AdvanceCOMP, то и параметры я сказать не смогу  smile 
Покажите выдачу из под  ./configure --help - постараюсь сказать.

Автор: lorents 18.5.2015, 20:37
xvr, 

Код

$ ./configure --help
`configure' configures AdvanceCOMP 1.20 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/advancecomp]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-bzip2       Use the bzip2 compression
  --enable-valgrind       enable the use of valgrind in testing
  --enable-debug          enable debugging

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  TESTENV     Test environment

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to the package provider.


Автор: xvr 19.5.2015, 10:17
Ясно, специальных параметров у configure для уровня оптимизаций нет. Тогда через CFLAGS & CXXFLAGS
Код

CFLAGS=-O3 CXXFLAGS=-O3 ./configure
Пытаться поставить какие то отдельные оптимизации не стоит - это потребует тщательного анализа сгененрированного когда.
Можно еще включить LTO, но для этого потребуется включить его везде (и в вашей программе тоже)

Автор: lorents 19.5.2015, 23:39
xvr, спасибо большое! Протестировал, производительность выросла. smile 

Цитата(xvr @  19.5.2015,  10:17 Найти цитируемый пост)
Можно еще включить LTO, но для этого потребуется включить его везде (и в вашей программе тоже)

Вы не могли бы поподробнее рассказать, что это? и как это можно сделать?

Автор: xvr 20.5.2015, 16:18
Это Link Time Optimization. Если вкратце, то компилятор при компиляции модулей не генерирует код, а только переводит текст модуля во втнутреннее представление, которое и зписывает в объектный файл. Потом, на этапе линковки, промежуточное представление для всех молдулей извлекается, объединяется и генерируется код. В результате оптимизатор имеет возможность видеть всю программу целиком и сделать больше оптимизаций.
Опция https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-flto-935

Автор: lorents 20.5.2015, 20:48
xvr, у меня выдает

Код

$ CFLAGS=-O3 CXXFLAGS=-O3 LDFLAGS='-static' ./configure -flto
configure: error: unrecognized option: `-flto'
Try `./configure --help' for more information

Автор: xvr 21.5.2015, 10:21
-lto надо добавлять в ключи компилятора (и линкера). Т.е. так
Код

CFLAGS='-O3 -flto' CXXFLAGS='-O3 -flto' LDFLAGS='-static -flto' ./configure

Автор: lorents 21.5.2015, 21:12
xvr, 

выдает ошибку:

Код

collect2.exe: error: ld returned 1 exit status
Makefile:728: ошибка выполнения рецепта для цели «advpng.exe»
make[1]: *** [advpng.exe] Ошибка 1
make[1]: выход из каталога «/c/Users/Lorents/Desktop/advancecomp-1.20»
Makefile:578: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2


AdvanceCOMP состоит из трех программ:
advzip
advpng
advmng
advdef

advzip.exe компилируется, advpng.exe нет. А мне нужен advdef.exe

подскажите, что делать?

Автор: xvr 22.5.2015, 14:48
А сам линкер ничего не написал? Что то должно было быть до этого сообщения.

Автор: lorents 22.5.2015, 20:20
xvr, Вот что выдает

Код

$ make
make  all-am
make[1]: вход в каталог «/c/Users/Lorents/Desktop/advancecomp-1.20»
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o re                                                                                                                zip.o rezip.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zip.o zip.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o file.o file.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o data.o data.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o siglock.o siglock.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o compress.o compress.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zipsh.o zipsh.cc
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o getopt.o getopt.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o snprintf.o snprintf.c
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/7zdeflate.o 7z/7zdeflate.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/7zlzma.o 7z/7zlzma.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/AriBitCoder.o 7z/AriBitCoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/CRC.o 7z/CRC.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/DeflateDecoder.o 7z/DeflateDecoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/DeflateEncoder.o 7z/DeflateEncoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/HuffmanEncoder.o 7z/HuffmanEncoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/IInOutStreams.o 7z/IInOutStreams.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/InByte.o 7z/InByte.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/LSBFDecoder.o 7z/LSBFDecoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/LSBFEncoder.o 7z/LSBFEncoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/LZMA.o 7z/LZMA.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/LZMADecoder.o 7z/LZMADecoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/LZMAEncoder.o 7z/LZMAEncoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/LenCoder.o 7z/LenCoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/LiteralCoder.o 7z/LiteralCoder.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/OutByte.o 7z/OutByte.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/WindowIn.o 7z/WindowIn.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o 7z/WindowOut.o 7z/WindowOut.cc
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/blocksplitter.o zopfli/blocksplitter.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/cache.o zopfli/cache.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/deflate.o zopfli/deflate.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/gzip_container.o zopfli/gzip_container.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/hash.o zopfli/hash.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/katajainen.o zopfli/katajainen.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/lz77.o zopfli/lz77.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/squeeze.o zopfli/squeeze.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/tree.o zopfli/tree.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/util.o zopfli/util.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/zlib_container.o zopfli/zlib_container.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o zopfli/zopfli_lib.o zopfli/zopfli_lib.c
g++  -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS  -static -flto -o advzip.exe rezip.o zip.o file.o data.o siglock.o compress.o zipsh.o getopt.o snprintf.o 7z/7zdeflate.o 7z/7zlzma.o 7z/AriBitCoder.o 7z/CRC.o 7z/DeflateDecoder.o 7z/DeflateEncoder.o 7z/HuffmanEncoder.o 7z/IInOutStreams.o 7z/InByte.o 7z/LSBFDecoder.o 7z/LSBFEncoder.o 7z/LZMA.o 7z/LZMADecoder.o 7z/LZMAEncoder.o 7z/LenCoder.o 7z/LiteralCoder.o 7z/OutByte.o 7z/WindowIn.o 7z/WindowOut.o zopfli/blocksplitter.o zopfli/cache.o zopfli/deflate.o zopfli/gzip_container.o zopfli/hash.o zopfli/katajainen.o zopfli/lz77.o zopfli/squeeze.o zopfli/tree.o zopfli/util.o zopfli/zlib_container.o zopfli/zopfli_lib.o  -lz
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o repng.o repng.cc
g++ -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o pngex.o pngex.cc
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o lib/fz.o lib/fz.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o lib/png.o lib/png.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o lib/error.o lib/error.c
gcc -DHAVE_CONFIG_H -I.     -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS -c -o lib/snstring.o lib/snstring.c
g++  -O3 -flto -DUSE_ERROR_SILENT -DUSE_COMPRESS  -static -flto -o advpng.exe repng.o pngex.o file.o data.o siglock.o compress.o getopt.o snprintf.o lib/fz.o lib/png.o lib/error.o lib/snstring.o 7z/7zdeflate.o 7z/7zlzma.o 7z/AriBitCoder.o 7z/CRC.o 7z/DeflateDecoder.o 7z/DeflateEncoder.o 7z/HuffmanEncoder.o 7z/IInOutStreams.o 7z/InByte.o 7z/LSBFDecoder.o 7z/LSBFEncoder.o 7z/LZMA.o 7z/LZMADecoder.o 7z/LZMAEncoder.o 7z/LenCoder.o 7z/LiteralCoder.o 7z/OutByte.o 7z/WindowIn.o 7z/WindowOut.o zopfli/blocksplitter.o zopfli/cache.o zopfli/deflate.o zopfli/gzip_container.o zopfli/hash.o zopfli/katajainen.o zopfli/lz77.o zopfli/squeeze.o zopfli/tree.o zopfli/util.o zopfli/zlib_container.o zopfli/zopfli_lib.o  -lz
C:\msys32\tmp\ccwAYaLP.ltrans3.ltrans.o:ccwAYaLP.ltrans3.o:(.text+0x3d8): undefined reference to `adler32.lto_priv.81'
C:\msys32\tmp\ccwAYaLP.ltrans3.ltrans.o:ccwAYaLP.ltrans3.o:(.text+0x3f4): undefined reference to `adler32.lto_priv.81'
collect2.exe: error: ld returned 1 exit status
Makefile:728: ошибка выполнения рецепта для цели «advpng.exe»
make[1]: *** [advpng.exe] Ошибка 1
make[1]: выход из каталога «/c/Users/Lorents/Desktop/advancecomp-1.20»
Makefile:578: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2


Автор: xvr 25.5.2015, 10:35
Похоже сломался LTO на ZLIB'е. Что с этим делать не подскажу, увы. Это требует детального изучения  smile 

Автор: feodorv 25.5.2015, 16:50
Цитата(lorents @  21.5.2015,  21:12 Найти цитируемый пост)
А мне нужен advdef.exe

А есть такая цель - advdef.exe? Если есть, то можно попробовать скомпилировать только её:
Код

make advdef.exe

Автор: lorents 25.5.2015, 20:07
xvr, понял Вас. Огромное вам спасибо за все!


feodorv, спасибо, попробовал сделать. advdef.exe не компилируется, видимо проблема в zlib.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)