Как скомпилировать libACE на slackware?
Пытаюсь скомпилировать, но вылетает ошибка.
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.tar.gz
tar xvzf ACE-6.0.3.tar.gz
cd ACE_wrappers/
mkdir build
cd build
../configure --disable-ssl
make
Ошибка:
libtool: link: g++ -W -Wall -Wpointer-arith -g -O2 -pthread -pipe -O3 -I. -I.. -o .libs/FIFO FIFO-test.o ../../../Kokyu/.libs/libKokyu.so /tmp/trinitycore/ACE_wrappers/build/ace/.libs/libACE.so ../../../ace/.libs/libACE.so /usr/lib64/../lib64/libstdc++.so -lm -lrt -ldl -pthread -Wl,-rpath -Wl,/usr/lib64/../lib64
make[3]: Leaving directory `/tmp/trinitycore/ACE_wrappers/build/Kokyu/tests/FIFO'
make[3]: Entering directory `/tmp/trinitycore/ACE_wrappers/build/Kokyu/tests'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/tmp/trinitycore/ACE_wrappers/build/Kokyu/tests'
make[2]: Leaving directory `/tmp/trinitycore/ACE_wrappers/build/Kokyu/tests'
make[1]: Leaving directory `/tmp/trinitycore/ACE_wrappers/build/Kokyu'
make[1]: Entering directory `/tmp/trinitycore/ACE_wrappers/build'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/tmp/trinitycore/ACE_wrappers/build'
1. А чего такой старый? Уж 6.2.3 на дворе :)
2. И всё сделал как ТУТ (http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html) писано?
Посмотрел я ссылку и ничего не понял.
Дык, вроде, все понятно :)
=======================
Сборка и установка ACE на UNIX
Начиная с версии ACE 6.0.6, вы можете собрать ACE под UNIX с:
1. Традиционным вариантом конфигурации ACE/GNU Make
Процесс сборки для Windows отличается от методов UNIX.
Использование традиционного варианта конфигурации ACE/GNU Make
Вот что вам нужно сделать, чтобы осуществить сборку ACE используя GNU Make и метод традиционной конфигурации платформы при помощи ACE:
1. Установите GNU make версии 3.79.1 или выше в вашу систему (доступен через http или анонимный ftp на ftp.gnu.org в каталоге pub/gnu/make/ ). Вы должны использовать GNU make когда используете метод традиционной конфигурации платформы при помощи ACE, иначе ACE не скомпилируется.
2. Добавьте переменную среды под названием ACE_ROOT с присвоением имени корневого каталога, в котором находится дерево исходного кода ACE . Эта информация нужна для рекурсивных схем Makefile ACE. Есть несколько способов задать переменную ACE_ROOT. Например:
TSCH/CSH:
setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
в BASH или Bourne Shell:
ACE_ROOT=/home/cs/faculty/schmidt/ACE_wrappers; export ACE_ROOT
Однако, если вы собираете несколько версий ACE (например, для различных платформ ОС или для различных релизов ACE), то можно использовать (при условии TCSH/CSH) следующий способ:
setenv ACE_ROOT $cwd
3. Создайте файл конфигурации, $ACE_ROOT/ace/config.h, в который включите соответствующий нужной платформе файл заголовка компилятора, из исходного каталога ACE. Например:
#include "ace/config-linux.h"
Файл заголовка компилятора содержит #defines, которые используются для указания ACE функций поддерживающих вашей системой. В файле $ACE_ROOT/ace/README есть описания параметров этих макросов. Если вы желаете добавить несколько участков или специфические изменения для сборки, то их можно добавить в файл config.h; и их место до включения файла заголовка платформы.
Есть разные конфигурационные файлы для большинства версий UNIX. Если не существует версии файла, который соответствует вашей платформе/компилятору, вам понадобится его сделать самостоятельно. Пожалуйста, отправьте письмо в список пользователей ace, если у вас все заработает, то его можно будет добавить к следующему релизу ACE.
4. Создайте файл конфигурации для сборки, $ACE_ROOT/include/makeinclude/platform_macros.GNU, содержащий соответствующую конфигурацию платформы/компилятора Makefil, например,
include $(ACE_ROOT) include/makeinclude/platform_linux.GNU
Этот файл содержит директивы компилятора и Makefile, которые являются специфическими для платформы/компилятора. Если вы хотите добавить опции, то их можно добавить перед добавлением конфигурации платформы.
ОБРАТИТЕ ВНИМАНИЕ! Символ "#" перед «include» в файле platform_macros.GNU — символ комментария.
5. Если вы хотите установить ACE (с использованием «make install»), установите префикс установки в platform_macros.GNU
INSTALL_PREFIX = /usr/local
Заголовки будут устанавливаться в $INSTALL_PREFIX/include, исполняемые файлы в INSTALL_PREFIX/bin, документация и собранные системные файлы в $INSTALL_PREFIX/share, библиотеки в $INSTALL_PREFIX/lib. Каталог библиотек можно настроить, изменив INSTALL_LIB (например, INSTALL_LIB=lib64). С набором INSTALL_PREFIX, RPATH будет включена для всех исполняемых файлов и общих библиотек. Чтобы отключить RPATH (например, если $INSTALL_PREFIX/$INSTALL_LIB, это уже известное системе место для совместно используемых библиотек, таких как те, что перечислены в /etc/ld.so.conf), установите макрос install_rpath равным 0, путем добавления install_rpath=0 в platform_macros.GNU.
6. Обратите внимание, что поскольку ACE собирает разделяемые библиотеки, вам нужно указать в D_LIBRARY_PATH (или эквивалент для вашей платформы) каталог, где находятся двоичные версии библиотеки ACE. Например вы, вероятно, сделали бы что-то вроде следующего:
% setenv LD_LIBRARY_PATH $ACE_ROOT/lib:$LD_LIBRARY_PATH
7. Когда вы все это сделаете, вам нужно сделать это:
% make
в каталоге ACE_ROOT. И это начнет собирать библиотеку ACE, тесты, примеры и образцы приложений. Сборка всего релиза ACE может занять длительное время и занять много дискового пространства. Таким образом, можно рассмотреть переход в каталог $ACE_ROOT/ace и запуск make там, для сборки только лишь библиотеки ACE. Для проверки здравомыслия вы также можете автоматически «одной кнопкой», собрать и выполнить тесты в $ACE_ROOT/tests. Наконец если вы также планируете сборку TAO, вы должны собрать приложение gperf, идеальный генератор хэш функций, в $ACE_ROOT/apps/gperf.
8. Если вы установили INSTALL_PREFIX до сборки, то запустите
% make install
9. Если вам нужно будет восстановить файл ace/Svc_Conf_y.cpp, вам понадобиться GNU Bison. Однако, он вам будет нужен редко, если вообще когда-либо понадобится.
=======================