|
|
2f8e3d9 |
From 4a4df0190ad24c0a3636994c2c23cb6c22e04589 Mon Sep 17 00:00:00 2001
|
|
|
2f8e3d9 |
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
|
|
2f8e3d9 |
Date: Thu, 24 Mar 2022 15:41:33 +0100
|
|
|
2f8e3d9 |
Subject: [PATCH 2/3] Remove namespace RooFit from libRooFitCore's LinkDef
|
|
|
2f8e3d9 |
|
|
|
2f8e3d9 |
The namespace is listed in the LinkDef's for both libRooFit and libRooFitCore.
|
|
|
2f8e3d9 |
|
|
|
2f8e3d9 |
ROOT only autoloads one of the libraries, for some reason usually
|
|
|
2f8e3d9 |
libRooFitCore. After this only symbols in the namespace from that
|
|
|
2f8e3d9 |
library are present. By removing the namespace from liRooFitCore's
|
|
|
2f8e3d9 |
LinkDef, only libRooFit can be chosen when autoloading. Since
|
|
|
2f8e3d9 |
libRooFit depends on libRooFitCore, both libraries are loaded, and the
|
|
|
2f8e3d9 |
symbols from the namespace in both libraries are available.
|
|
|
2f8e3d9 |
|
|
|
2f8e3d9 |
Fixes error:
|
|
|
2f8e3d9 |
|
|
|
2f8e3d9 |
IncrementalExecutor::executeFunction: symbol '_ZN6RooFit12bindFunctionEPKcPFddER10RooAbsReal' unresolved while linking function '_GLOBAL__sub_I_cling_module_217'!
|
|
|
2f8e3d9 |
You are probably missing the definition of RooFit::bindFunction(char const*, double (*)(double), RooAbsReal&)
|
|
|
2f8e3d9 |
Maybe you need to load the corresponding shared library?
|
|
|
2f8e3d9 |
Symbol found in '/builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'; did you mean to load it with '.L /builddir/build/BUILD/root-6.26.00/redhat-linux-build/lib/libRooFit.so.6.26.00'?
|
|
|
2f8e3d9 |
---
|
|
|
2f8e3d9 |
roofit/roofitcore/inc/LinkDef.h | 5 ++++-
|
|
|
2f8e3d9 |
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
2f8e3d9 |
|
|
|
2f8e3d9 |
diff --git a/roofit/roofitcore/inc/LinkDef.h b/roofit/roofitcore/inc/LinkDef.h
|
|
|
2f8e3d9 |
index d421fd95cd..72c66db33b 100644
|
|
|
2f8e3d9 |
--- a/roofit/roofitcore/inc/LinkDef.h
|
|
|
2f8e3d9 |
+++ b/roofit/roofitcore/inc/LinkDef.h
|
|
|
2f8e3d9 |
@@ -105,7 +105,10 @@
|
|
|
2f8e3d9 |
|
|
|
2f8e3d9 |
|
|
|
2f8e3d9 |
// Old LinkDef2.h
|
|
|
2f8e3d9 |
-#pragma link C++ namespace RooFit ;
|
|
|
2f8e3d9 |
+
|
|
|
2f8e3d9 |
+// "namespace RooFit" is in roofit/roofit/inc/Linkdef1.h
|
|
|
2f8e3d9 |
+// should not be in the dictionary for two different libraries
|
|
|
2f8e3d9 |
+// #pragma link C++ namespace RooFit ;
|
|
|
2f8e3d9 |
#pragma link C++ namespace RooFitShortHand ;
|
|
|
2f8e3d9 |
#pragma link C++ class RooDouble+ ;
|
|
|
2f8e3d9 |
#pragma link C++ class RooEffGenContext+ ;
|
|
|
2f8e3d9 |
--
|
|
|
2f8e3d9 |
2.35.1
|
|
|
2f8e3d9 |
|