|
Boost : |
From: Yitzhak Sapir (Yitzhak.Sapir_at_[hidden])
Date: 2008-03-11 06:53:58
Hello all. I am having problems compiling with boost 1.34.1 regex in release on linux (RedHat kernel 2.4.21-4.Elsmp/i686)
I get the following (using a simple test case that seems to reproduce the problem):
> cat test.cpp
#include <boost/regex.hpp>
using namespace boost;
int main (void)
{
regex expr("foo");
return 0;
}
> g++ -I sources/3rdParty/boost -I sources/3rdParty/local-config/linux/ -Lsources/3rdParty/releases/linux/debug
[works]
> g++ -I sources/3rdParty/boost -I sources/3rdParty/local-config/linux/ -Lsources/3rdParty/releases/linux/release
sources/3rdParty/releases/linux/release//libboost_regex.so: undefined reference to 'boost::re_detail::cpp_regex_traits_implementation<char>::isctype(char, unsigned) const'
collect2: ld returned 1 exit status
The following includes information used to compile the release build, taken from config.status (with some unnecessary defines cleaned up). Note that a very similar line is executed to create the debug executables, the only real difference is that debug does not have -O3 and defines instead of NDEBUG the macros DEBUG and _DEBUG.
// Use this file to define a site and compiler specific
// configuration policy, this version was auto-generated by
// configure on Wed Mar 5 16:04:54 IST 2008
// With the following options:
// CXX = /usr/local/bin/distcc /usr/local/bin/g++
// CXXFLAGS = -I sources/3rdParty/boost/libs/config/../.. -I sources/3rdParty/boost/libs/config/../../libs/config/test -ggdb -DNDEBUG -pthread -fPIC -fnon-call-exceptions -DNO_WIN32 -DTCHAR=wchar_t -DUNICODE -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64 -DBOOST_ALL_DYN_LINK -DOPENSSL_NO_KRB5 -I sources/3rdParty/local-config/linux -O3 -DBOOST_NO_CONFIG
// LDFLAGS = -ggdb -DNDEBUG -pthread -fPIC -fnon-call-exceptions -DNO_WIN32 -DTCHAR=wchar_t -DUNICODE -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64 -DBOOST_ALL_DYN_LINK -DOPENSSL_NO_KRB5
// LIBS = -lrt -lm -lpthread
I am using g++ 3.3.3. The above happens even when the first line of test.cpp defines BOOST_REGEX_BUGGY_CTYPE_FACET
The release libboost_regex is ~660k in size, whereas the debug is ~5.5M, so I'd really appreciate being able to compile regex in release, and definitely the other boost libraries as well (which don't cause problems and have a similar ratio of release/debug sizes).
Any suggestions?
Yitzhak Sapir
CONFIDENTIALITY CAUTION
This e-mail and any attachments may be confidential or legally privileged. If you received this message in error or are not the intended recipient, you should destroy the e-mail message and any attachments or copies, and you are prohibited from retaining, distributing, disclosing or using any information contained herein. Please inform us of the erroneous delivery by return e-mail.
Thank you for your cooperation.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk