Неисправности сборки CppCMS 1.x.x
Отсутствуют зависимости
На этапе cmake ..
проверяется наличие всех зависимостей (перечисленные в разделе требований на странице сборки).
Иногда, для начинающего сложно выяснить какие пакеты должны быть установлены для соответствия этим требованиям. Вы можете помочь, внеся в список известные названия пакетов для различных платформ.
Linux Debian, Ubuntu и производные
Вы можете получить все нужные пакеты, выполнив от root
apt-get install build-essential libpcre3-dev libicu-dev libgcrypt11-dev zlib1g-dev cmake
Замечание, зависимости CppCMS 0.0.x Debian очень отличаются от серий CppCMS 1.x.x - не используйте их.
Множество тестов неуспешны
Что-то вроде:
8 - form_test (Failed) 9 - cookie_test (Failed) 10 - internal_forwarder_test (Failed) 11 - forwarder_test (Failed) 12 - jsonrpc_test (Failed) 13 - proto_test_async_http (Failed) 14 - proto_test_async_scgi (Failed) 16 - proto_test_sync_http (Failed) 17 - proto_test_sync_scgi (Failed) 34 - test_aio_socket (Failed) 35 - test_aio_endpoint (Failed) 36 - test_aio_prefork (Failed)
Проверьте, нет ли приложений использующих порты 8080 и 8081 (напр. tomcat, jboss - прим. пер.). Если не уверены, какое именно приложение запущено на этом порту - поищите его идентификатор процесса (PID) от пользователя root так:
# fuser -n tcp 8080
В ответ получите что-то вроде:
8080/tcp: 3171
Затем найдите у какого приложения PID равен 3171 так:
ps -ef | grep 3171
Просто выключите или остановите приложение.
Почти все тесты неуспешны и я использую Windows
Проверьте, что вы корректно установили переменную окружения PATH - она должна указывать на текущую директориюbuild\booster
и на директории, где расположены сторонние библиотеки.
Предоставьте полный отчет об ошибке
Если есть ошибки сборки не указанные выше - пожалуйста, предоставьте полный отчет, который должен включать следующую информацию:
Вашу платформу и дистрибутив (напр. Linux Debian 4). $ uname -a Linux cppcms 2.6.31-22-generic #60-Ubuntu SMP Thu May 27 02:41:03 UTC 2010 x86_64 GNU/Linux
Версию cppCMS или ревизию svn если Вы загружали его из из svn, напр.: # svn update At revision 1314.
- Вывод
cmake ..
. - Версию python: $ python -V Python 2.6.4
- Версию cmake: $ cmake --help cmake version 2.8.0
- Версию PCRE: $ pcretest PCRE version 7.8 2008-09-05
- Тип и версию компилятора: $ gcc --version gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
- Версию ICU: посмотрите в файл
/usr/include/unicode/uversion.h
и найдите как определенаU_ICU_VERSION
. #define U_ICU_VERSION "4.0.1" - В случае ошибок при выполнении
cmake test
, обеспечьте как общие данные так и соответствующие части `build/Testing/Temporary/LastTest.log'.
Мое пробное приложение не может найти разделяемый объект libcppcms.so
при запуске.
По-умолчанию CppCMS устанавливается в директорию /usr/local
и библиотека устанавливается в /usr/local/lib/libcppcms.so
, однако в некоторых операционных системах, таких как Linux, /usr/local/lib
не входит в список путей поиска библиотек.
Поэтому, при желании можно сделать одно из следующих действий, в целях корректного последующего использования библиотеки:
Установить библиотеку в
/usr/lib
, предоставив дополнительный параметр cmake-DCMAKE_INSTALL_PREFIX=/usr
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
Определить переменную окружения
LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib
Обновить конфигурацию системы так, что
/usr/local/lib
станет одной из директорий, в которой операционная система будет искать библиотеки. Для этого создайте новый файл в /etc/ld.so.conf./ и вставьте в него /usr/local/lib затем перегрузите ldconfig ldconfig
Также, удостоверьтесь, что внимательно прочитали man ldconfig
в Linux.