X-Spam-Check-By: sourceware.org Date: Wed, 23 Aug 2006 00:42:10 +0200 (MET DST) From: Angelo Graziosi To: cygwin AT cygwin DOT com Subject: A build problem of C++ code on Cygwin Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com I want to flag the following problem occurred on Cygwin BUT NOT on Linux. ======= I have tried to build LiDIA (A C++ Library For Computational Number Theory, http://www.informatik.tu-darmstadt.de/TI/LiDIA/) library on Cygwin. After the ./configure the make failed: ----------------------------------------------------------- cd library && make all make[1]: Entering directory `/tmp/lidia-2.2.0/.build/library' Making all in base make[2]: Entering directory `/tmp/lidia-2.2.0/.build/library/base' if g++ -DHAVE_CONFIG_H -I../../include -I../../src/base/include -I../../../lib rary/base/../../src/base/include -O2 -MT bytes_to_int_flag_generator.o -MD -MP -MF ".deps/bytes_to_int_flag_generator.Tpo" -c -o bytes_to_int_flag_generator.o `test -f '../../src/portability/bytes_to_int_flag_generator.cc' || echo '../../ ../library/base/'`../../src/portability/bytes_to_int_flag_generator.cc; \ then mv -f ".deps/bytes_to_int_flag_generator.Tpo" ".deps/bytes_to_int_f lag_generator.Po"; else rm -f ".deps/bytes_to_int_flag_generator.Tpo"; exit 1; f i gcc bytes_to_int_flag_generator.o -o bytes_to_int_flag_generator bytes_to_int_flag_generator.o:bytes_to_int_flag_generator.cc:(.text+0x17): undef ined reference to `std::basic_ostream >& std::operator<< >(std::basic_ostream >&, char const*)' [....] collect2: ld returned 1 exit status make[2]: *** [bytes_to_int_flag_generator] Error 1 make[2]: Leaving directory `/tmp/lidia-2.2.0/.build/library/base' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/tmp/lidia-2.2.0/.build/library' make: *** [all-subdirs] Error 2 ----------------------------------------------------------- It tries to build C++ with gcc: gcc bytes_to_int_flag_generator.o -o bytes_to_int_flag_generator The trick to solve this has been (before the 'make'): cd library/base g++ ../../../src/portability/bytes_to_int_flag_generator.cc \ -c -o bytes_to_int_flag_generator.o g++ bytes_to_int_flag_generator.o -o bytes_to_int_flag_generator cd ../.. then make In this way the build was completed succefully. On Linux (with gcc 4.0.3) all worked fine: ./configure make ---------------------------------------------------------------- cd library && make all make[1]: Entering directory `/home/angelo/tmp/lidia-2.2.0/.build/library' Making all in base make[2]: Entering directory `/home/angelo/tmp/lidia-2.2.0/.build/library/base' if g++ -DHAVE_CONFIG_H -I../../include -I../../src/base/include -I../../../lib rary/base/../../src/base/include -O2 -MT bytes_to_int_flag_generator.o -MD -MP -MF ".deps/bytes_to_int_flag_generator.Tpo" -c -o bytes_to_int_flag_generator.o `test -f '../../src/portability/bytes_to_int_flag_generator.cc' || echo '../../ ../library/base/'`../../src/portability/bytes_to_int_flag_generator.cc; \ then mv -f ".deps/bytes_to_int_flag_generator.Tpo" ".deps/bytes_to_int_f lag_generator.Po"; else rm -f ".deps/bytes_to_int_flag_generator.Tpo"; exit 1; f i /bin/sh ../../libtool --tag=CXX --mode=link g++ -O2 -o bytes_to_int_flag_gene rator bytes_to_int_flag_generator.o mkdir .libs g++ -O2 -o bytes_to_int_flag_generator bytes_to_int_flag_generator.o ./bytes_to_int_flag_generator > ../../include/bytes_to_int_flag.h make all-am ... ---------------------------------------------------------------- So the question is : what could be the cause of this different behaviour ? I have all Cygwin installed and updated. I use GCC 3.4.4-2 (but also 3.4.4-1 gives the same results). Cheers, Angelo. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/