ACLIC error using 32 bit ROOT on 64 linux

Hi Rooters,

I have compiled a 32bit ROOT (5.34.09) on 64 bit linux (I need the 32 bit version because of some library dependencies for my project). If I now try to compile this simple script:

#include "TH1F.h"
void test() {
   TH1F h;

I get the following error:

Info in TUnixSystem::ACLiC: creating shared library /home/danielr/./
/superdata/data/motion/software/root-5.34.09-x86_32/lib/ could not read symbols: File in wrong format
collect2: error: ld returned 1 exit status
Error in : Compilation failed!

I do not understand the problem here because: gSystem->GetMakeSharedLib() gives me:
(const char* 0x9016878)“cd $BuildDir ; g++ -c $Opt -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -pthread $IncludePath $SourceFiles ; g++ $ObjectFiles -shared -Wl,-soname,$ -L/superdata/data/motion/share/lib $LinkedLibs -o $SharedLib”


file gives me
/superdata/data/motion/software/root-5.34.09-x86_32/lib/ ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=0x58af56bd64706e6c6ed95d356c7b3e5bcccf8abb, not stripped

so everything should be 32 bit…does anybody have a clue? can I see the actual compiler and linker calls from ACLIC?


Hi Daniel,

you can set gDebug=7 and then compile your macro to see all the intermediate files and debug output.