Names of PCM files

Hello, I have a basic question about pcm files.
I have a makefile that produces libplotutils.so and plotutilsDict_rdict.pcm and then fails to find the information for the classes in the dictionary in some circumstances.
I know they need to be in the same directory but is there a naming convention that they have to follow to be matched to each other? I can’t find that documented.

here is how I make the so and the pcm file and rootmap

libplotutilsDict.so: $(OBJS) plotutilsDict.o
	g++ -o $@ $(LDFLAGS) $^

plotutilsDict.cxx: dict/PlotUtilsDict.h dict/PlotUtilsDict.xml
	genreflex dict/PlotUtilsDict.h -o plotutilsDict.cxx --gccxmlopt='--gccxml-compiler g++ ' --select=dict/PlotUtilsDict.xml   --rootmap=plotutilsDict.rootmap --rootmap-lib=libplotutilsDict   $(INCLUDES)

Hi @schellman,
I’m afraid your question slipped through the cracks. We typically recommend to open a new thread rather than revive one that’s four years old, also in order to get the proper attention to your own issue.

@Axel might be able to help with your pcm-related doubts :smile:

Cheers,
Enrico

Hi,

What are the errors you see?
Axel.

I’ve moved this to a new topic.

I think i solved it but what I found was that the pcm file does seem to have to have exactly the same name as the so to work for me and that is not explicit in the documentation. The line that ended up working to build was:

CMakeList.txt in subdirectory build
source in subdirectory PlotUtils

results end up in top directory:

ROOT_GENERATE_DICTIONARY(G__plotutils {H_FILES} LINKDEF {CMAKE_SOURCE_DIR}/…/PlotUtils/Linkdef.h)

add_library(plotutils SHARED ${SRC_FILES} G__plotutils.cxx )

I end up with

G__plotutils.cxx libplotutils.rootmap libplotutils.so libplotutils_rdict.pcm

and that works. No other combination of names for the .cxx file seems to work. It’s gotta be G__plotutils to make a pure libplotutils_rdict.pcm.

comments on if I am correct in assuming the name has to be libXXX_rdict.pcm would be useful.

thanks, Heidi

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.