compiling libraries - LIBBIN and USER_LIBBIN
So, I'm compiling a modified version of the twoPhaseEulerFoam solver. I've copied my version to a folder and compile it to $FOAM_USER_APPBIN. No problem. Within the solver there are three libraries (containing submodels) that must be compiled separately if one wishes to make changes to those submodels. I compiled the libraries to $FOAM_USER_LIBBIN, and it all works ok. If i run my modified solver it uses the modified libraries.
Now, the problem is that the original version of twoPhaseEulerFoam is also using the changed version of the libraries. I don't understand why since the original libraries and code are unaltered (unless i have overlooked something but it does not appear so), but somehow it is using my modified libraries in $FOAM_USER_LIBBIN as opposed to the original libraries in $FOAM_LIBBIN. Does anyone know why and how I can stop that from happening? I want the original solver to use the original libraries and the modified solver to use the modified libraries in USER_LIBBIN. |
Hi Greg
I would suggest that you name those libraries in FOAM_USER_LIBBIN libmy<name>.so in stead of lib<name>.so and change the linked libraries in your modified solver accordingly. The problem is most definitely that FOAM_USER_LIBBIN appears first in the search path for the linking, so the original solver finds your modified libraries first, because the are named the same. Kind regards, Niels |
Thanks Niels,
I have renamed my modified libraries as suggested. When trying to link to those in the Make/options file of the actual solver, i get an error message that it can't find them. I think it's maybe a syntax thing that i've got wrong. to clarify, the original contents of my Make/options file of the solver are as below. i compile for example a new library called libmyphaseModel (instead of the original libphaseModel). then i get libmyphaseModel.so in my USER_LIBBIN. good that works. now in my Make/options file of the solver (below), i tried changing -lphaseModel to -lmyphaseModel but I get an error message that it cannot be found. it doesnt seem to recognise the new name of the library. is my syntax wrong? Code:
EXE_INC = \ |
Hi Greg
Try to add the following line prior to your own libraries in Make/options: Code:
-L$(FOAM_USER_LIBBIN) \ Best regards, Niels |
To make it clearer, it's like:
Code:
LIB_LIBS = \ |
All times are GMT -4. The time now is 20:45. |