symbol lookup error
Hello,
I am developing a boundary condition based on turbulentTemperatureCoupledBaffle and compiling with Code:
wmake libso Code:
multiRegionRadSimpleSolver: symbol lookup error: /opt/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libcoupledDerivedFvPatchFields.so: undefined symbol: Code:
nm /opt/OpenFOAM/OpenFOAM-2.0.x/platforms/linux64Gcc45DPOpt/lib/libcoupledDerivedFvPatchFields.so | grep _ZN4Foam9NamedEnumINS_22temperatureCoupledBase11KMethodTypeELi4EE5namesE Thank you, Mirko |
Whenever I get weird, inconsistent errors like that, I try recompiling OpenFOAM. That's my shot in the dark.
|
Quote:
The capital letter U in front of the symbol stands for Undefined... 'man nm' is your friend here. Martin |
I was wondering what the `U' meant :-) I should have pursued it further.
Mirko |
I think I understand what went wrong: I was overriding an OpenFOAM library with my own incomplete library.
I am adding a boundary condition derived from compressible::turbulentTemperatureCoupledBaffle. In Make/files, I specified as the destination $FOAM_USER_LIBBIN/libcompressibleTurbulenceModel. Presumably, this prevented the $FOAM_LIBBIN/libcompressibleTurbulenceModel from linking. Mirko |
Quote:
If it prevented the lib from linking, how to relink it with your own lib? |
Dear all,
I got a similar error like that today and it went away after fixing an error in the code. The error was forgetting to add the class name before the function name for some reimplemented virtual functions: void className::functionName() instead of just: void functionName() Hisham |
Dear Mirko,
I now that it was in 2009... but I have similar problem, but even more strange... I developed new BC as well, but im my case everything run well on one processor, but If I want to run in parallel I got the same error as u had. running decomposeParDic: dlopen error : /home/user/OpenFOAM/user-2.3.0/platforms/linux64GccDPOpt/lib/customlibcompressibleTurbulenceModel.so: undefined symbol: _ZN4Foam9NamedEnumINS_22temperatureCoupledBase11KM ethodTypeELi4EE5namesE any idea ? thank you MM |
Any solution?
was anyone able to solve this problem?
I am stuck here and can't move forward. |
Hi,
I got the same problem. Still looking for information to solve it. Joe |
Hi,
I'm not sure if it's exactly the same problem as I came across as the following link and I solved mine. Good luck! Joe https://www.cfd-online.com/Forums/op...kup-error.html |
Hi All,
In order to access the mesh information add the follwoing lines in my own library : const objectRegistry& db(); const volVectorField& U = db().lookupObject<volVectorField>("U"); const fvMesh & mesh = U.mesh(); forAll ( etat, cellI) //loop through cell centres { etat[cellI]=mesh.C()[cellI].y(); if ( etat[cellI]< 0.048)..... But because of the const objectRegistry& db(); const volVectorField& U = db().lookupObject<volVectorField>("U"); const fvMesh & mesh = U.mesh(); when I run it, it shows me error : symbol lookup error:........................ undefined symbol: _ZN4Foam15viscosityModels2dbEv Does anybody can help me? Thanks |
I solved the problem by removing the following lines
const objectRegistry& db(); const volVectorField& U = db().lookupObject<volVectorField>("U"); const fvMesh & mesh = U.mesh(); And just write the following line: const fvMesh& mesh = U_.mesh(); |
I have faced the similar type of issue. Libraries need to be compiled correctly. Check the file and options of Make folder. In my case, the libraries were not linked. Hope it helps.
|
Quote:
Code:
error: ‘const volVectorField& Foam::constitutiveEq::U_’ is private within this context |
All times are GMT -4. The time now is 01:28. |