GSI Helmholtzzentrum für Schwerionenforschung
Hi Florian, Hi all, In rev. 775 I noticed a problem with the cmake configuring file "config.sh". It seems that the PATH variable is completely reset and not expanded: export PATH=/data_hilbert/Software/fairroot/cbmsoft/tools/root/bin At this point paths like /usr/bin and my own /home/ralfk/bin are no more included. Thats why the "make" executable could not be found. Please fix this soon. Greetings from Dresden, Ralf. For everyone: You may report your own CMake problems here, so Florian has to email-subscribe just this thread.
Hi, This is already corrected now in rev. 776 regards Mohammad
Hello again, I'm at rev. 777 now and the cmake still creates a config.sh that overwrites the PATH variable (see above) without caring about the previous definitons. Regards, Ralf.
Hi Ralf With rev. 778 everything should be okay. I will suscribe also to this thread that i get the problems from now on directely. Ciao Florian
Hello, the cmake was installed here in the Gießen cluster cmake --version -> cmake version 2.4-patch 3 so I started to test it here. First I set the SIMPATH: export SIMPATH=/d/c0/cbmsoft/ccacbmsoft I crated a cbuild directory, I moved there, and I type: spataro@cca04 /home/spataro/cbuild $ cmake ../pandaroot/ -- This is an 32 bit machine -- You're not using the GSI installation of the external packages. -- If any problems occur this can be due to the fact that the macros -- were mostly tested at GSI. If you find any problems please contact -- f.uhlig@gsi.de -- Found root of the simulation software at /d/c0/cbmsoft/ccacbmsoft -- Found ROOT version "5.14/00" at "/d/c0/cbmsoft/ccacbmsoft/tools/root" -- Found GEANT3: /d/c0/cbmsoft/ccacbmsoft/transport/geant3/lib/tgt_linux/libgeant321.so -- Found PLUTO: /d/c0/cbmsoft/ccacbmsoft/generators/lib -- Found Generators: /d/c0/cbmsoft/ccacbmsoft/generators/lib -- Found GEANT4: /d/c0/cbmsoft/ccacbmsoft/transport/geant4/lib/Linux-g++ -- Found GEANT4VMC: /d/c0/cbmsoft/ccacbmsoft/transport/geant4_vmc/lib/tgt_linux -- Found CLHEP: /d/c0/cbmsoft/ccacbmsoft/cern/clhep/lib -- Configuring done -- Generating done -- Build files have been written to: /home/spataro/cbuild It seems everything fine. Then I launch the config.sh script: spataro@cca04 /home/spataro/cbuild $ . ./config.sh -bash: GEANT4_DIR-NOTFOUND/env.sh: No such file or directory What is going wrong?
Hi Stefano Can you please have a look for GEANT4_DIR in the file CMakeCache.txt located in the build directory. If you find something like GEANT4_DIR-NOTFOUND please delete this file and run once more cmake. If the GEANT4_DIR is after this procedure still not set i have to check the cmake macro. Ciao Florian
Hi, I did what you propose without results. In the config.sh there is still the ". GEANT4_DIR-NOTFOUND/env.sh" line. export SIMPATH=/d/c0/cbmsoft/ccacbmsoft export ROOTSYS=/d/c0/cbmsoft/ccacbmsoft/tools/root export GEANT4_LIBRARY_DIR=/d/c0/cbmsoft/ccacbmsoft/transport/geant4/lib/Linux-g ++ export GEANT4_INCLUDE_DIR=/d/c0/cbmsoft/ccacbmsoft/transport/geant4/include:/d/ c0/cbmsoft/ccacbmsoft/transport/geant4/source/interfaces/common/include: /d/c0/cbmsoft/ccacbmsoft/t ransport/geant4/physics_lists/hadronic/Packaging/include:/d/c0/cbmsoft/c cacbmsoft/transport/geant4/physics_lists/hadronic/QGSP/include export GEANT4VMC_INCLUDE_DIR=/d/c0/cbmsoft/ccacbmsoft/transport/geant4_vmc/sour ce/global/include:/d/c0/cbmsoft/ccacbmsoft/transport/geant4_vmc/source/g eometry/include:/d/c0/cbms oft/ccacbmsoft/transport/geant4_vmc/source/digits+hits/include:/d/c0/cbm soft/ccacbmsoft/transport/geant4_vmc/source/physics/include:/d/c0/cbmsof t/ccacbmsoft/transport/geant4_vmc /source/event/include:/d/c0/cbmsoft/ccacbmsoft/transport/geant4_vmc/sour ce/run/include:/d/c0/cbmsoft/ccacbmsoft/transport/geant4_vmc/source/inte rfaces/include:/d/c0/cbmsoft/ccac bmsoft/transport/geant4_vmc/source/visualization/include:/d/c0/cbmsoft/c cacbmsoft/transport/geant4_vmc/include:/d/c0/cbmsoft/ccacbmsoft/transpor t/vgm/packages/BaseVGM/include:/d /c0/cbmsoft/ccacbmsoft/transport/vgm/packages/ClhepVGM/include:/d/c0/cbm soft/ccacbmsoft/transport/vgm/packages/Geant4GM/include:/d/c0/cbmsoft/cc acbmsoft/transport/vgm/packages/R ootGM/include:/d/c0/cbmsoft/ccacbmsoft/transport/vgm/packages/VGM/includ e:/d/c0/cbmsoft/ccacbmsoft/transport/vgm/packages/XmlVGM/include export GEANT4VMC_LIBRARY_DIR=/d/c0/cbmsoft/ccacbmsoft/transport/geant4_vmc/lib/ tgt_linux export CLHEP_INCLUDE_DIR=/d/c0/cbmsoft/ccacbmsoft/cern/clhep/include export CLHEP_LIBRARY_DIR=/d/c0/cbmsoft/ccacbmsoft/cern/clhep/lib export PLUTO_LIBRARY_DIR=/d/c0/cbmsoft/ccacbmsoft/generators/lib export PLUTO_INCLUDE_DIR=/d/c0/cbmsoft/ccacbmsoft/generators/pluto/src export G3SYS=/d/c0/cbmsoft/ccacbmsoft/transport/geant3 export GEANT3_INCLUDE_DIR=/d/c0/cbmsoft/ccacbmsoft/transport/geant3/TGeant3 export GEANT3_LIBRARY_DIR=/d/c0/cbmsoft/ccacbmsoft/transport/geant3/lib/tgt_lin ux export ROOT_LIBRARY_DIR=/d/c0/cbmsoft/ccacbmsoft/tools/root/lib export ROOT_INCLUDE_DIR=/d/c0/cbmsoft/ccacbmsoft/tools/root/include export VMCWORKDIR=/home/spataro/pandaroot export CBMLIBDIR=/home/spataro/cbuild/lib export LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib:/home/spataro/cbuild/lib:/d/c0/c bmsoft/ccacbmsoft/tools/root/lib:/d/c0/cbmsoft/ccacbmsoft/transport/gean t3/lib/tgt_linux:/d/c0/cbm soft/ccacbmsoft/generators/lib:/d/c0/cbmsoft/ccacbmsoft/generators/lib:/ d/c0/cbmsoft/ccacbmsoft/transport/geant4/lib/Linux-g++:/d/c0/cbmsoft/cca cbmsoft/transport/geant4_vmc/lib/ tgt_linux:/d/c0/cbmsoft/ccacbmsoft/transport/vgm.2.08.04/lib/Linux-g++:/ d/c0/cbmsoft/ccacbmsoft/cern/clhep/lib export USE_VGM=1 export PATH=/d/c0/cbmsoft/ccacbmsoft/tools/root/bin:/d/c0/cbmsoft/ccacbmsoft/to ols/root/bin:/d/c0/cbmsoft/ccacbmsoft/tools/root/bin:/d/c0/cbmsoft/ccacb msoft/tools/root/bin:/d/c0 /cbmsoft/ccacbmsoft/tools/root/bin:/d/c0/cbmsoft/ccacbmsoft/tools/root/b in:/d/c0/cernsoft/root_ver/root_v5.10.00/bin:/usr/local/bin:/usr/bin:/bi n:/opt/bin:/usr/i686-pc-linux-gnu /gcc-bin/4.1.1:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2. 03/jre/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/kde/3.3/bin:/opt/firebird /bin:/usr/games/bin . GEANT4_DIR-NOTFOUND/env.sh
Hi Stefano I found the problem. cmake is looking in the GEANT4 directory for a file env.sh which contains all the seetings used for building GEANT4. If you use the tarball from GSI this file should be in that directory. If you have installed GEANT4 on your own than you should look in the following subdirectory for this file .config/bin/Linux-g++. Please copy this file to the GEANT4 directory and the everything should work. Ciao Florian
Hi, I solved the problem as you suggested, I copied the file geant4.8.2/source/env.sh in geant4.8.2 . In each case I installed the external packages from the tar ball, so I have no idea on why the env.sh was not at the correct position. Now it is compiling...
Hi Stefano Nice that this solved the problem. Ciao Florian
Hi Florian, hi Mohammed, In the Rev. 880 there is some trouble with the cmake functionality: CMake Error: Error in cmake code at /home/ralfk/Pandaroot/pandaroot/base/CMakeLists.txt:72: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/ralfk/Pandaroot/pandaroot/base/CMakeLists.txt CMake Error: Error in cmake code at /home/ralfk/Pandaroot/pandaroot/geobase/CMakeLists.txt:79: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/ralfk/Pandaroot/pandaroot/geobase/CMakeLists.txt CMake Error: Error in cmake code at /home/ralfk/Pandaroot/pandaroot/parbase/CMakeLists.txt:53: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/ralfk/Pandaroot/pandaroot/parbase/CMakeLists.txt CMake Error: Error in cmake code at /home/ralfk/Pandaroot/pandaroot/generators/CMakeLists.txt:49: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/ralfk/Pandaroot/pandaroot/generators/CMakeLists.txt CMake Error: Error in cmake code at /home/ralfk/Pandaroot/pandaroot/cbmg4/CMakeLists.txt:43: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/ralfk/Pandaroot/pandaroot/cbmg4/CMakeLists.txt Kind regards, Ralf.
Hi Ralf Sorry about that. I changed some things in CbmRoot, which have influence also on PandaRoot. Give me some minutes to fix this. I will write when this is done. Ciao Florian
Hi Ralf The problem is fixed. You can build PandaRoot again. Hope the delay gives you some time for a coffee. Ciao Florian
Hello, I have still this problem here in Gießen. What's wrong with me? spataro@cca04 /home/spataro/cbuild $ cmake ../pandaroot/ -- Check for working C compiler: gcc -- Check for working C compiler: gcc -- works -- Check size of void* -- Check size of void* - done -- Check for working CXX compiler: c++ -- Check for working CXX compiler: c++ -- works -- This is an 32 bit machine -- You're not using the GSI installation of the external packages. -- If any problems occur this can be due to the fact that the macros -- were mostly tested at GSI. If you find any problems please contact -- f.uhlig@gsi.de -- Found root of the simulation software at /d/c0/cbmsoft/ccacbmsoft -- Found ROOT version "5.14/00" at "/d/c0/cbmsoft/ccacbmsoft/tools/root" -- Found GEANT3: /d/c0/cbmsoft/ccacbmsoft/transport/geant3/lib/tgt_linux/libgeant321.so -- Found PLUTO: /d/c0/cbmsoft/ccacbmsoft/generators/lib -- Found Generators: /d/c0/cbmsoft/ccacbmsoft/generators/lib -- Found GEANT4: /d/c0/cbmsoft/ccacbmsoft/transport/geant4/lib/Linux-g++ -- Found GEANT4VMC: /d/c0/cbmsoft/ccacbmsoft/transport/geant4_vmc/lib/tgt_linux -- Found CLHEP: /d/c0/cbmsoft/ccacbmsoft/cern/clhep/lib CMake Error: Error in cmake code at /home/spataro/pandaroot/base/CMakeLists.txt:72: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/spataro/pandaroot/base/CMakeLists.txt CMake Error: Error in cmake code at /home/spataro/pandaroot/geobase/CMakeLists.txt:79: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/spataro/pandaroot/geobase/CMakeLists.txt CMake Error: Error in cmake code at /home/spataro/pandaroot/parbase/CMakeLists.txt:53: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/spataro/pandaroot/parbase/CMakeLists.txt CMake Error: Error in cmake code at /home/spataro/pandaroot/generators/CMakeLists.txt:49: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/spataro/pandaroot/generators/CMakeLists.txt CMake Error: Error in cmake code at /home/spataro/pandaroot/cbmg4/CMakeLists.txt:43: SET_TARGET_PROPERTIES called with illegal arguments, maybe missing a PROPERTIES specifier? Current CMake stack: /home/spataro/pandaroot/cbmg4/CMakeLists.txt -- Configuring done spataro@cca04 /home/spataro/cbuild $ dir total 40K
Hi Stefano This is the same problem reported by Ralf yesterday. There must have been a problem with the commit. I checked and the new CMakeLists.txt was not in SVN. I uploaded the file now. Ciao Florian
Much better now, thanks. Ste
Now i can have a light-hearted lunch. Ciao Florian
Hi Guys, I did the SVN Update to revision 1112 today morning and tried my luck with cmake - for the first time. I followed the steps suggested by Ralf Kliemt in his "Using Cmake" Thread. After running SetEnv.sh and creating the cbuild directory I got the following error during the cmake process: dallas $ cd cbuild/ dallas $ cmake ../pandaroot/ -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Check size of void* -- Check size of void* - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works CMake Error: Error in cmake code at /home/knucl/FAIRroot/PANDAroot/pandaroot/CMakeLists.txt:21: INCLUDE Could not find include file: CbmMacros Current CMake stack: /home/knucl/FAIRroot/PANDAroot/pandaroot/CMakeLists.txt;/usr/share/cmake /Modules/CMakeCInformation.cmake;/usr/share/cmake/Modules/CMakeCXXInform ation.cmake;/home/knucl/FAIRroot/PANDAroot/pandaroot/CbmMacros CMake Error: Error in cmake code at /home/knucl/FAIRroot/PANDAroot/pandaroot/CMakeLists.txt:22: INCLUDE Could not find include file: WriteConfigFile Current CMake stack: /home/knucl/FAIRroot/PANDAroot/pandaroot/CMakeLists.txt;/usr/share/cmake /Modules/CMakeCInformation.cmake;/usr/share/cmake/Modules/CMakeCXXInform ation.cmake;/home/knucl/FAIRroot/PANDAroot/pandaroot/CbmMacros;/home/knu cl/FAIRroot/PANDAroot/pandaroot/WriteConfigFile CMake Error: Error in cmake code at /home/knucl/FAIRroot/PANDAroot/pandaroot/CMakeLists.txt:27: Unknown CMake command "CHECK_OUT_OF_SOURCE_BUILD". -- Configuring done dallas $ C-Make version is: 2.4.5 I hope anybody can help me with this problem.
Hi Please check if you have a directory cmake/modules below the main pandaroot directory. Here you should find the necessary files. In your case it looks like that this directory is not in your search path. I don't know why. if you look in the main CMakeLists.txt there should be the following lines # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ # is checked set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules") # Load some basic macros which are needed later on include(CbmMacros) include(WriteConfigFile) include(Dart) I hope this helps. Ciao Florian
Hi Florian, I have found the required entries in CMakeList.txt but not the mentioned directory cmake/modules. Any hints how I can resolve this problem? Greetings.
Hi I think something went wrong with your checkout from SVN. Did you create a new directory or did you update a existing directory? Please go to the main source directory. and try svn update The last line of the update should be something like Updated to revision 1114 where 1114 is the revision number and may differ. If the last line differs and you update a existing local working directory then there is probably a conflict which SVN could not resolve. In this case svn stops and tells you that there is a conflicting file and you have to first solve this conflict. Ciao Florian
Hi, fortunately I still have the svn output in my shell buffer: dallas $ pwd /home/knucl/FAIRroot/PANDAroot dallas $ svn co https://subversion.gsi.de/fairroot/pandaroot U pandaroot/stt/CbmStt.cxx U pandaroot/stt/CbmSttHitProducerIdeal.cxx Fetching external item into 'pandaroot/base' Checked out external at revision 1114. Fetching external item into 'pandaroot/cbmg4' Checked out external at revision 1114. Fetching external item into 'pandaroot/config' svn: 'pandaroot/config' is not a working copy dallas $ dallas $ ls build cbuild pandaroot The output looks like my everyday svn output and therefore I do not think that there is a svn conflict. Do you have any other hints on how I might restore the missing cmake/modules directory?
Hi For me it looks like your svn did not update to the end. Your last line shows some problem Fetching external item into 'pandaroot/config' svn: 'pandaroot/config' is not a working copy After this error svn stops working. In my case after the config directory there are more dierectories to come Fetching external item into 'config' Updated external to revision 1114. Fetching external item into 'generators' Updated external to revision 1114. Fetching external item into 'geobase' Updated external to revision 1114. Fetching external item into 'm4' Updated external to revision 1114. Fetching external item into 'ora' Updated external to revision 1114. Fetching external item into 'parbase' Updated external to revision 1114. Fetching external item into 'cmake' Updated external to revision 1114. Updated to revision 1114. As you can see you miss with your update several directories including the cmake directory. The important check is that the last line of your update is Updated to revision 1114 or whatever revision number. You should delete or at least rename the config directory. I think this is a leftover from auomake, so this should be a safe operation. After this you should do an svn update again. Ciao Florian
Deleting the config directory worked. Thanks a lot.
Hi Florian, In the global CmakeLists.txt is the trackbase package missing. Could you please add it? I don't have the right to commit this. Greetings from Dresden, Ralf.
Hi Ralf Done. I added the trackbase directory. I also added the geane directory to the list. Ciao Florian
Hi Florian, before putting geane in the automatic CMakeLists.txt, perhaps it is better to wait until CERN updates the TGeant3.h/cxx class. Otherwise the method GetClose() which is not present in the current geant3 distribution will cause a compilation error. Cheers, Andrea & Lia
Hi Andrea I will remove it again. Ciao Florian
Does it mean that the geane package works only with the latest virtualMC release, thus that we need new external package?
Yes, I confirm this. We have to wait until CERN releases our patch. Andrea
Hi guys, I have a funny c-make linker error. Actually I have a lot of them, therefore I limit myself to the posting of one, representative example: CMakeFiles/recotasks.dir/demo/ClusterAnalysisTask.o(.data+0x28):/home/kn ucl/FAIRroot/cbmsoft/tools/root/include/TObjArray.h:55: multiple definition of `n' CMakeFiles/recotasks.dir/demo/PrintTask.o(.data+0x28):/home/knucl/FAIRro ot/cbmsoft/tools/root/include/TObjArray.h:55: first defined here During the linking process I get about 50 errors of this type which seem rather contradictory to myself. How can the Linker at line 55 know, that "n" has multiple definitions if it is defined at line 55 for the first time? And why does the compiler not complain about this issue. All 50 errors have this contradictory statement in common. Just the header files, lines and variables differ. I am actually compiling the same code as I used to compile previously with automake - without the funny linker errors. Therefore I figure maybe it is a c-make problem, and belongs here. Maybe the problem is trivial, but it should be easy to solve in this case. Thanks for your help!
Hello Florian I have no idea where this errors coming from. I have never seen such errors, so i think this is no cmake problem. Did you use seperate build directories for cmake and automake? If not you should start with a new build directory for cmake. Did you use the SVN head version? Ciao Florian
Hi, while it is always nice to have something unique I'd rather pass in this case. Of course I have a separate cmake and automake build directory - as it was suggested in the using cmake thread. However I have absolutely no clue what you mean if you talk about the SVN head version, therefore it is kinda hard for me to answer this question. Nevertheless, if it is not a problem caused by cmake, what else could cause the linker process to fail? From studying the error messages and the code lines they refer to it is my impression, that the linker is ignoring function prototype definitions. E. g. if function prototype is given in line 44 and the function definition follows in 357 the linker will complain, that the function is first defined in line 357, together with the complain, that it is a multiple definition in line 357 - also I noticed that the error-message does not point to the line with the actual function definition (e. g. void ....) but to the line including the first "{" I don't know if this is a meaningless observation, but it looks rather strange to me, and it is quite annoying to have a code which does compile but not link...
Hi If you don't know what is the SVN head version than let me ask how you get your sourcecode of pandaroot? But to explain. SVN is the repository and the head version is the newest version of pandaroot in the repository. I ask the question because i don't see any problems with the head version. The head version is checked each night on several machines. Can you create a new directory for testing and download the SVN head version of pandaroot and try to compile this version. You get the SVN head version by svn co https://subversion.gsi.de/fairroot/pandaroot Please follow the the instruction in INSTALL.GSI given for the use of cmake. Please let me know if this works or not. Ciao Florian
P.S. I compiled yesterday the release 1_0_0 and it works, so I do not think it is a problem of revisions.
Thanks a lot, for this completely non-sarcastic reply. Of course I am a daily user of svn and know the program. I have also tried the default "I have no clue whats going on" solution - and updated pandaroot to the newest version. However I have to admit that I was confused that you referred to the latest pandaroot version as svn head version. I personally would call the latest pandaroot version or pandaroot head version if you like, and the latest version of SVN, latest SVN version or SVN head version if you prefer. Now you see where the confusion came in... In absence of better ideas I will try todays revision as well, but I agree with Stefano and do not think it is a problem with revisions.
Yep, no problem with revisions. Revision 1185 fails with the same errors.
I tried to find this ClusterAnalysisTask in the repository but without any success. Is it in your private code? Can be that something in the CMakeLists.txt was messed up or missing?
Hi, yes in deed this is my private could which I am currently developing. I located it in the recotask/demo directory. The corresponding CMakeList.txt file reads as follows: # Create a library called "" which includes the source files given in # the array . # The extension is already found. Any number of sources could be listed here. set(INCLUDE_DIRECTORIES ${ROOT_INCLUDE_DIR} ${CLHEP_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/geobase ${CMAKE_SOURCE_DIR}/parbase ${CMAKE_SOURCE_DIR}/base ${CMAKE_SOURCE_DIR}/field ${CMAKE_SOURCE_DIR}/mcstack ${CMAKE_SOURCE_DIR}/passive ${CMAKE_SOURCE_DIR}/mvd ${CMAKE_SOURCE_DIR}/mvd/tst ${CMAKE_SOURCE_DIR}/genfit ${CMAKE_SOURCE_DIR}/tpc ${CMAKE_SOURCE_DIR}/tpc/tpcreco ${CMAKE_SOURCE_DIR}/tpcreco ${CMAKE_SOURCE_DIR}/recotasks ${CMAKE_SOURCE_DIR}/recotasks/demo ) include_directories( ${INCLUDE_DIRECTORIES}) set(LINK_DIRECTORIES ${ROOT_LIBRARY_DIR} ) link_directories( ${LINK_DIRECTORIES}) set(RECOTASKS_SRCS CbmFieldAdaptor.cxx demo/DemoRecoHit.cxx demo/DemoPatternRecoTask.cxx demo/DemoKalmanTask.cxx demo/PrintTask.cxx demo/MCAnalysisTask.cxx demo/ClusterAnalysisTask.cxx KalmanTask.cxx TrackVisTask.cxx TrackFitStat.cxx TrackFitStatTask.cxx ../tpc/tpcreco/TpcPlanarRecoHit.cxx ) # fill list of header files from list of source files # by exchanging the file extension CHANGE_FILE_EXTENSION(*.cxx *.h RECOTASKS_HEADERS "${RECOTASKS_SRCS}") set(RECOTASKS_LINKDEF recotasksLinkDef.h) set(RECOTASKS_DICTIONARY ${CMAKE_CURRENT_BINARY_DIR}/recotasksDict.cxx) ROOT_GENERATE_DICTIONARY("${RECOTASKS_HEADERS}" "${RECOTASKS_LINKDEF}" "${RECOTASKS_DICTIONARY}" "${INCLUDE_DIRECTORIES}") SET(RECOTASKS_SRCS ${RECOTASKS_SRCS} ${RECOTASKS_DICTIONARY}) add_library(recotasks SHARED ${RECOTASKS_SRCS}) target_link_libraries(recotasks ${ROOT_LIBRARIES}) set_target_properties(recotasks PROPERTIES VERSION 0.0.1 SOVERSION 0 ) ################ install ################### install(TARGETS recotasks DESTINATION ${CMAKE_BINARY_DIR}/lib) The lines: demo/PrintTask.cxx demo/MCAnalysisTask.cxx demo/ClusterAnalysisTask.cxx and ../tpc/tpcreco/TpcPlanarRecoHit.cxx have been added by myself. The first three tasks have been developed by myself, the first two compiled well with automake and cmake. The third task is extremely similar to the second task just using another root file as input, and includes some minor modifications on variable names which are in no relation with the produced errors. The last line was necessary to resolve the dynamic link error: dlopen error: /home/knucl/FAIRroot/PANDAroot/cbuild/lib/librecotasks.so: undefined symbol: _ZTI16TpcPlanarRecoHit Load Error: Failed to load Dynamic link library /home/knucl/FAIRroot/PANDAroot/cbuild/lib/librecotasks.so Maybe this is related to the problem at hand?
Hi Florian Maybe this is the problem. Can you please try to compile your stuff without ../tpc/tpcreco/TpcPlanarRecoHit.cxx . I only want to know if it then compiles and links or not. Ciao Florian
Hi, nice Idea - I just tried to compile without the line in question. However, the error remains unchanged.
Hi Florian, Do you have added your classes to the linkdef? Maybe it's a stupid question. If you like to, you might send me your code and I'll try my best... Ciao, Ralf.
Hi Florian, In your update 1197 of the pandaroot/Dart.sh you also checked in your local path setting. This causes a problem when you run Dart.sh the second time after rev. 1197 since the pathes are not set properly. It causes even an error, because the svn tries to merge the versions and gets a conflict. Hopefully there is some way around this, for the next update of the Dart.sh. Ciao, Ralf.
I edited the file by myself, in order to eliminate this "double" status. Probably everybody has to do the same.
Hi Ralf Thanks for your information. This was not planed. I commit already a new and hopefully correct version. Ciao Florian
Hi Florian! Maybe you can help me. What did I do wrong to create these warnings: CMakeFiles/Makefile2:2028: warning: overriding commands for target `trackrep/CMakeFiles/trackrep.dir/all' CMakeFiles/Makefile2:1668: warning: ignoring old commands for target `trackrep/CMakeFiles/trackrep.dir/all' CMakeFiles/Makefile2:2038: warning: overriding commands for target `trackrep/CMakeFiles/trackrep.dir/rule' CMakeFiles/Makefile2:1678: warning: ignoring old commands for target `trackrep/CMakeFiles/trackrep.dir/rule' CMakeFiles/Makefile2:2047: warning: overriding commands for target `trackrep/CMakeFiles/trackrep.dir/preinstall' CMakeFiles/Makefile2:1687: warning: ignoring old commands for target `trackrep/CMakeFiles/trackrep.dir/preinstall' CMakeFiles/Makefile2:2054: warning: overriding commands for target `trackrep/CMakeFiles/trackrep.dir/clean' CMakeFiles/Makefile2:1694: warning: ignoring old commands for target `trackrep/CMakeFiles/trackrep.dir/clean' Cheers, Sebastian.
Hi Sebastin Did you get this errors when runing cmake or when you run make? Did you change something in the CMakeLists.txt of the trackrep directory? Ciao Florian
Hi! I get it everytime I run make And it appeared from the beginning on when I created trackrep. It seems not to do any harm. Sebastian.
Hello Sebastian I think this has to do with the fact that you define the TRACKREP_HEADERS two times. The first time you use CHANGE_FILE_EXTENSION(*.cxx *.h TRACKREP_HEADERS "${TRACKREP_SRCS}") later in the file you have set(TRACKREP_HEADERS GeaneTrackRep.h) Try to remove one of this lines and see what happens. Ciao Florian
No change
Hello Florian, I have the following GLinkDef.h file for the Global pid directory. // $Id: LHETrackLinkDef.h,v 1.3 2005/02/04 16:24:01 roleg Exp $ #ifdef __CINT__ #pragma link off all globals; #pragma link off all classes; #pragma link off all functions; #pragma link C++ class PndPidCand+; #pragma link C++ class PndGeaneTrTpcTof+; #pragma link C++ class PndGeaneTrTpcIdealTof+; #pragma link C++ class PndGpidCollTask+; #pragma link C++ class MultiClassBdtTrain+; #pragma link C++ class Event+; #pragma link C++ class EvtGenTask+; #pragma link C++ class PndGpidTask+; #endif when I do Make install I get the Following Error Error: link requested for unknown class PndGpidTask /home/vanni/fairsoft/pandaroot/gpid/GpidLinkDef.h:16: Warning: Error occurred during reading source files Warning: Error occurred during dictionary source generation !!!Removing /home/vanni/fairsoft/build/gpid/GpidDict.cxx /home/vanni/fairsoft/build/gpid/GpidDict.h !!! Error: /home/vanni/fairsoft/tools/root/bin/rootcint: error loading headers... make[2]: *** [gpid/GpidDict.cxx] Error 1 make[1]: *** [gpid/CMakeFiles/Gpid.dir/all] Error 2 make: *** [all] Error 2 I get this Error when ever I add a new Class. Can you help me with this? how can I solve this problem. Regards Vanni
Hi Vanni, did you add your class to the CMakeList.txt file? Mohammad
Hi Mohammad, Yes I have added them in the srcs list. My CMakeList.txt included here
Hi Did you add the directory where the file is located to the list of link directories? Can you please send me the CMakeLists.txt file of your directory. Ciao Florian
Hi Florian, I have included my CMakeLists.txt with the previous message vanni
Hi Sorry, but i overlooked the attachement. For me everything looks fine. To test some things please remove the following line #pragma link C++ class PndGpidTask+; from your linkdef file and run the compilation again. I wonder why there are no complaines about the other files. Could it be that there is some typo in the class name in the PndGpidTask.h file. Ciao Florian
If I remove that line, There is no such Error. It is smooth compilation. please tell me What is that typo?
Hi Florian, I have solved the problem. It was really a wired one... It was the the problem with the include guard. earlier it was #ifndef PNDGPIDTASK_H #define PNDGPIDTASK_H which gave me the problem. now I have included one more H and made it as #ifndef PNDGPIDTASK_HH #define PNDGPIDTASK_HH now the problem is solved, But still i have no clue why it is sensitive to the H in the include guard. cheers, vanni
Hi Vanni I have no idea why this happens. I could understand this if there is a protection with the same name in one of the other files. Than you would never see the declaration of the class and you would get the error. Ciao Florian
Hello CMakers, On the dashboard I can see that the continuous build is started at each checkin to the trunk. But what puzzles me is that it does not update to the latest revision, but rater to rev. 3454. (see dashboard) Kind regards, Ralf.
Hi Ralf Thanks for the info. There was somethin mixed up in the local working copy used for the Continuous build. I had to remove a lock and now it works again. Ciao Florian