CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   OpenFoam171: error /usr/bin/ld: cannot find -llduSolvers (https://www.cfd-online.com/Forums/openfoam-programming-development/88965-openfoam171-error-usr-bin-ld-cannot-find-lldusolvers.html)

Schipper May 31, 2011 09:02

OpenFoam171: error /usr/bin/ld: cannot find -llduSolvers
 
Hallo,
I'm new to OpenFoam and also of Ubuntu_64.
I'm using OpenFoam-1.7.1 and I downloaded the Ubuntu/Debian_64 Pack Installation.
I'm trying to compile a solver that is a modification of simpleFoam. By the way, I already tryed to compile simpleFoam and it gives no problem at all.

When i try to compile my new solver I get the following error:
Code:

g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3  -DNoRepository -ftemplate-depth-40 -I/opt/openfoam171/src/turbulenceModels    -I/opt/openfoam171/src/turbulenceModels/incompressible/RAS/RASModel    -I/opt/openfoam171/src/transportModels    -I/opt/openfoam171/src/transportModels/incompressible/singlePhaseTransportModel    -I/opt/openfoam171/src/finiteVolume/lnInclude    -I/opt/openfoam171/src/llduSolvers  -IlnInclude -I. -I/opt/openfoam171/src/OpenFOAM/lnInclude -I/opt/openfoam171/src/OSspecific/POSIX/lnInclude  -fPIC -Xlinker --add-needed Make/linux64GccDPOpt/actuatorDiskExplicitSimpleFoam.o Make/linux64GccDPOpt/actuatorDiskExplicit.o -L/opt/openfoam171/lib/linux64GccDPOpt \
        -lincompressibleTurbulenceModel    -lincompressibleRASModels    -lincompressibleTransportModels    -lfiniteVolume    -lmeshTools    -llduSolvers    -lstdio.h -lOpenFOAM -liberty -ldl  -lm -o /opt/openfoam171/applications/bin/linux64GccDPOpt/actuatorDiskExplicitSimpleFoam
/usr/bin/ld: cannot find -llduSolvers
 /usr/bin/ld: cannot find -lstdio.h
 collect2: ld returned 1 exit status
 make: *** [/opt/openfoam171/applications/bin/linux64GccDPOpt/actuatorDiskExplicitSimpleFoam] Error 1

When I try to look at the library lduSolvers or liblduSolvers.so I cannot find anything on my OpenFoam installation directory. I already installed all requested packages as:
Code:

sudo apt-get install binutils-dev
sudo apt-get install build-essential
sudo apt-get install binutils-dev blcr-dkms blcr-util csh libcr0 libibverbs-dev libibverbs1 libncurses5-dev libnuma1 libopenmpi-dev libopenmpi1.3 libreadline-dev libreadline6-dev libscotch-5.1 libscotch-dev openmpi-bin openmpi-checkpoint openmpi-common zlib1g-dev

but I got no visible improvement: the error I get is almost the same.

I post also the ./Make/options file that can give maybe some more informations about what I put as input:
Code:

EXE_INC = \
    -I$(LIB_SRC)/turbulenceModels \
    -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \
    -I$(LIB_SRC)/transportModels \
    -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
    -I$(LIB_SRC)/finiteVolume/lnInclude \
    -I$(LIB_SRC)/llduSolvers

EXE_LIBS = \
    -lincompressibleTurbulenceModel \
    -lincompressibleRASModels \
    -lincompressibleTransportModels \
    -lfiniteVolume \
    -lmeshTools \
    -llduSolvers \
    -lstdio.h

The other problem is that I cannot locate the stdio.h file, but this is a secondary problem, at first I would like to solve the llduSolvers problem.

Thank You in advance

Paolo

norman1981 June 1, 2011 04:50

Hi Paolo,

a little hint that may help you.. take a look into OpenFOAM lib directory (type "lib" and go into your platform directory), then look for the lduSolvers library. I took a look at an OpenFOAM-1.7.0 "debian packed" installation I have in one of my workstations and that library doesn't exist as well as its sources. I don't know if it exists in OpenFOAM-1.7.1 since I am using OpenFOAM-1.6-ext, but maybe you are trying to compile a solver developed for another OpenFOAM version (in ex. lduSolvers lib and src are present in OpenFOAM-1.6-ext).

Regards

Norman

Schipper June 1, 2011 12:36

Hi Norman,
thank You very much for Your answer.
As You mentioned, the code was written in OpenFOAM-1.5-dev and I tried to implement it in OpenFOAM-1.7.1.
As You confirmed me that it is not possible to find the lduSolvers library I tried to change my /Make/options file with a last try, by erasing the lines that refer to lduSolvers etc....
Now the code looks like:
Code:

EXE_INC = \
 -I$(LIB_SRC)/turbulenceModels \
 -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \
 -I$(LIB_SRC)/transportModels \
 -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
 -I$(LIB_SRC)/finiteVolume/lnInclude

EXE_LIBS = \
 -lincompressibleTurbulenceModel \
 -lincompressibleRASModels \
 -lincompressibleTransportModels \
 -lfiniteVolume \
 -lmeshTools

and now everything works fine: OpenFOAM-1.7.1 does not need this library anymore, or the same informations are hidden somewhere else...

Anyway, thanks again Norman for Your help

Paolo

aldo.iannetti November 14, 2012 16:01

OpenFoam 2.1.x cannot find -llduSolvers
 
Hi,
I have had the same problem trying to compile a OpenFoam 1.6.x solver in OF 2.1.x, I deleted in option file the line refering -llduSolvers and now it works but the solver is not able to monitor calling libSimpleObjectFunction library. Do you have any idea on why it happens?

Cheers

Aldo



Quote:

Originally Posted by Schipper (Post 310172)
Hi Norman,
thank You very much for Your answer.
As You mentioned, the code was written in OpenFOAM-1.5-dev and I tried to implement it in OpenFOAM-1.7.1.
As You confirmed me that it is not possible to find the lduSolvers library I tried to change my /Make/options file with a last try, by erasing the lines that refer to lduSolvers etc....
Now the code looks like:
Code:

EXE_INC = \
 -I$(LIB_SRC)/turbulenceModels \
 -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \
 -I$(LIB_SRC)/transportModels \
 -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
 -I$(LIB_SRC)/finiteVolume/lnInclude

EXE_LIBS = \
 -lincompressibleTurbulenceModel \
 -lincompressibleRASModels \
 -lincompressibleTransportModels \
 -lfiniteVolume \
 -lmeshTools

and now everything works fine: OpenFOAM-1.7.1 does not need this library anymore, or the same informations are hidden somewhere else...

Anyway, thanks again Norman for Your help

Paolo


Schipper November 15, 2012 03:59

Hi Aldo,

The code for sampling in OpenFoam-2.1.x is:

Quote:

functions
{
probes
{
type probes;
functionObjectLibs ("libsampling.so");
enabled true;
outputControl timeStep;
outputInterval 1;
probeLocations
(
( 0.004 0.018 0 )
( 0.006 0.0295 0 )
( 0 0.0295 0)
);

fields
(
U
p
);
}

forces
{
type forces;
functionObjectLibs ("libforces.so");
outputControl timeStep;
outputInterval 1;
patches ("airfoil");
pName p;
UName U;
rhoName rhoInf;
log true;
rhoInf 1; // Reference density, fluid
CofR (0.25 0 0); // Origin for moment calculations
}


forceCoeffs
{
type forceCoeffs;
functionObjectLibs ("libforces.so");
enabled true;
outputControl timeStep;
outputInterval 1;
patches ("airfoil");
pName p;
UName U;
rhoName rhoInf;
log true;
rhoInf 1;
CofR ( 0.25 0 0 );//Center of rotation for moment calcs
liftDir ( 0 1 0 );
dragDir ( 1 0 0 );
pitchAxis ( 0 0 1 );
magUInf 1;
lRef 1;
Aref 1;
}
}

aldo.iannetti November 15, 2012 15:13

Thanks for the answer,
That's exacly what I write in controlDict, the problem is that the forces, forceCoeffs, etc folders do not appear afterwards during calculation, without any warning or error. It seems that the lib has not been hooked at all and I don't know how to check or solve...

Regards

Aldo



Quote:

Originally Posted by Schipper (Post 392199)
Hi Aldo,

The code for sampling in OpenFoam-2.1.x is:



All times are GMT -4. The time now is 08:17.