CppCMS 1.x.x Build Troubleshooting
Missing dependencies
At the cmake ..
stage, the presence of all the dependencies (listed in the requirements section of the build page) will be checked.
It can sometimes be difficult for a beginner to figure out what packages must be installed to fulfil those requirements. You can help by listing here the known package name for different platforms.
Linux Debian and Ubuntu and derivatives
You may get all you need by running as root
apt-get install build-essential libpcre3-dev libicu-dev libgcrypt11-dev zlib1g-dev cmake
Note, CppCMS 0.0.x Debian dependencies are very different from CppCMS 1.x.x serices, don't use them.
Lots of tests fails
Something like this:
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)
Make sure you have no applications using 8080 and 8081 ports. If you are not sure which applications run on those ports, find its process id thus:
# fuser -n tcp 8080
In reply, you'll get something like this:
8080/tcp: 3171
Then find out which application has the process id 3171 thus:
ps -ef | grep 3171
Simply turn off or terminate the application.
Almost every test fails, and I use Windows
Make sure that you setup PATH environment variable correctly,
it should point to currentbuild\booster
directory and
to directories where 3rd part library placed.
Provide a complete bug report
If you have make errors that are not addressed above, please provide a full report which should include the following information:
Your platform and distribution (e.g. 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
The cppCMS version or the svn version number if you checked out from svn, e.g.: # svn update At revision 1314.
- The output of
cmake ..
. - The python version: $ python -V Python 2.6.4
- The cmake version: $ cmake --help cmake version 2.8.0
- The PCRE version: $ pcretest PCRE version 7.8 2008-09-05
- The compiler type and version: $ gcc --version gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1
- The ICU version: take a look in the file
/usr/include/unicode/uversion.h
and see howU_ICU_VERSION
is defined. #define U_ICU_VERSION "4.0.1" - In case you have errors when doing
cmake test
, provide both the summary and the relevant parts of `build/Testing/Temporary/LastTest.log'.
My sample application does not find the shared object libcppcms.so
when I try to run it.
By default CppCMS is installed into /usr/local
location and the library is got installed into /usr/local/lib/libcppcms.so
, however under some operating systems like Linux, /usr/local/lib
is not the path to search libraries in.
So you may want to do one of the following in order to use library correctly afterwards:
Install library to
/usr/lib
providing additional cmake parameter-DCMAKE_INSTALL_PREFIX=/usr
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
Provide environment variable
LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/lib
Update system configuration so
/usr/local/lib
would one of the locations where the operating system looks for libraries. For this, create a new file in /etc/ld.so.conf.d/ and put in the content /usr/local/lib afterwards, reload ldconfig ldconfig
Also make sure you read man ldconfig
under Linux carefully.
The iconv library is not found on Mac OS X
It is a common issue. It is usually by have multiple installation of libiconv - one GNU's one (ports) and another that comes with Mac OS X - it is shipped from 10.5
If you search search for iconv.h and libiconv.* and you are likely to find multiple instances. What happens that the header and the library that are detected are incompatible and link fails - thus the library is not found.
You need to either remove port's iconv or pass
proper -DCMAKE_INCLUDE_PATH
and -DCMAKE_LIBRARY_PATH
options that would point to correct location of the iconv library
← Migrating to CppCMS 1.x.x | Top | Notes for Windows users →