RE: [ROOT] compiling error

From: Philippe Canal (pcanal@fnal.gov)
Date: Thu Jul 03 2003 - 04:09:35 MEST


Hi,

This is the same principle for libraries:

LDFLAGS       = -O $(shell root-config --libs)
...
        $(CXX) $(CXXFLAGS) -I$(ROOTSYS)/include walt.cxx -o walt \
        $(LDFLAGS) 

Cheers,
Philippe. 
-----Original Message-----
From: Jianrong Deng [mailto:jdeng@cdfsga.fnal.gov] 
Sent: Wednesday, July 02, 2003 7:51 PM
To: Philippe Canal
Cc: roottalk@pcroot.cern.ch
Subject: RE: [ROOT] compiling error


Hi Philippe,

Thank you for your help. After adding to my compile line "$(shell
root-config --cflags)" as you
suggested, I get rid of the incompatible complain.

But, there is a new error message. It seems something is
wrong with the math lib. But I don't know how to fix it.

Thank you in advance,
Jianrong

---------------------------------------------------
KCC --one_instantiation_per_object -fPIC +K0  --no_exceptions
--signed_chars -D_EXTERN_INLINE=inline --diag_suppress 191
-I/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/include
-I/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/include walt.cxx
-o walt \
-L/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib -lCore -lCint
\
         -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMinuit \
         -lPostscript -lProof -lTree \
         -lGpad -lGui -lGX11 -lRint \

/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCint.so:
undefined reference to `fabs'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `log'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `sqrt'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `cosh'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `ceil'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `floor'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCint.so:
undefined reference to `fmod'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `cos'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `tanh'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `sin'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `atan2'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `pow'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `sinh'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `log10'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `exp'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `tan'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `atan'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `asin'
/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so:
undefined reference to `acos'
collect2: ld returned 1 exit status
make: *** [walt] Error 1

-----------------------------------------------------------

Here is my new Makefile:

----------------------------------------------------------
ARCH = linuxkcc


ifeq ($(ARCH),linuxkcc)
# Linux with the KAI compiler
CXX           = KCC --one_instantiation_per_object
CXXFLAGS      = -fPIC +K0  $(shell root-config --cflags)
LD            = KCC
LDFLAGS       = -O $(shell root-config --cflags)
SOFLAGS       =
endif

ifeq ($(ARCH),linuxrh51)
# Linux with gcc 2.7.2.x
CXX           = g++
CXXFLAGS      = -O -Wall -fPIC
LD            = g++
LDFLAGS       = -O
SOFLAGS       = -shared
endif
walt:
        $(CXX) $(CXXFLAGS) -I$(ROOTSYS)/include walt.cxx -o walt \
        -L$(ROOTSYS)/lib -lCore -lCint \
         -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMinuit \
         -lPostscript -lProof -lTree \
         -lGpad -lGui -lGX11 -lRint \

------------------------------------------------------------------

On Wed, 2 Jul 2003, Philippe Canal wrote:

> Hi,
>
> As the compiler kindly expressed:
>   the setting of --[no_]thread_safe and/or --[no_]exceptions in
>   /home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib/libCore.so is
>   incompatible with previous file(s) in this link.
>
> you are trying to link C++ files that have compiled in modes that are not
> compatible.  In this case you have compiled your code with exceptions
> enabled, while the ROOT distribution you are using is compiled with
> exceptions disabled
>
> Each ROOT distribution provide you with the correct list of flags and
> libraries to be compiled and link with via the root-config utility.
>
> Make sure you add the result of
> 	root-config --cflags
> to your compile line:
> 	CXXFLAGS      = -fPIC +~K0 $(shell root-config --cflags)
>
> Cheers,
> Philippe
>
>
> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Jianrong Deng
> Sent: Wednesday, July 02, 2003 4:07 PM
> To: roottalk@pcroot.cern.ch
> Subject: [ROOT] compiling error
>
>
>
> Dear roottalk,
>
> I get the following message when I compile the file walt.cxx with
> Makefile. I have no idea what is wrong. How can I fix it?
>
> Thank you,
> Jianrong
>
> --------------------------------------
> KCC --one_instantiation_per_object -fPIC +K0
> -I/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/include walt.cxx
> -o walt \
> -L/home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/lib -lCore -lCint
> \
>          -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMinuit \
>          -lPostscript -lProof -lTree \
>          -lGpad -lGui -lGX11 -lRint \
>
> Error: The setting of --[no_]thread_safe and/or --[no_]exceptions in
> /home/cdfsoft/products/root/v3_03_07cKCC_4_0/Linux+2.2/l~ib/libCore.so
is
> incompatible with previous file(s) in this link.
> make: *** [walt] Error 2
>
> ------------------------------------
>
> The file walt.cxx is as following:
>
> -------------------------------------
>
> // program walt.cxx
> #include "TRint.h"
> #include "TCanvas.h"
> #include "TLine.h"
>
> int main(int argc, char **argv) {
>            TRint theApp("Rint", &argc, argv);
>         TCanvas *c1 = new TCanvas();
>            TLine *l = new TLine(.1,.2,.8,.7);
>             l->Draw();
>
>                theApp.Run();
>                           return 0;
> }
>
> ------------------------------------------
>
> And the Makefile is :
>
> ------------------------------------------
>
> ARCH = linuxkcc
>
> ifeq ($(ARCH),linuxkcc)
> # Linux with the KAI compiler
> CXX           = KCC --one_instantiation_per_object
> CXXFLAGS      = -fPIC +K0
> LD            = KCC
> LDFLAGS       = -O $(shell root-config --cflags)
> SOFLAGS       =
> endif
>
> walt:
>         $(CXX) $(CXXFLAGS) -I$(ROOTSYS)/include walt.cxx -o walt \
>         -L$(ROOTSYS)/lib -lCore -lCint \
>          -lGraf -lGraf3d -lHist -lHtml -lMatrix -lMinuit \
>          -lPostscript -lProof -lTree \
>          -lGpad -lGui -lGX11 -lRint \
>
>
> ------------------------------------------------------------
>
>
>



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:13 MET