Executable not created after rosmake
This error am facing is strange and am not able to resolve this over 5 days. your help is much appreciated. I have detailed the issue below.
I compiled a ros package known as tumardrone. before running rosmake, the ldlibrary_path was
/opt/ros/fuerte/lib
when I ran
rosmake tum_ardrone
It showed the following error
undefined reference to `dgemm_'
I concluded that the error was related to missing links, through lapack and blas, and thus included the following into LDLIBRARYPATH.
/opt/ros/fuerte/lib:usr/lib
I tried rosmake againa nd still got the error.
After that, I modified the LDLIBRARYPATH to just
/usr/lib
and the pakcage was compiled without errors. However, all exe's pertaining to the package was created except one. The exe was defined and included in the CMakeLists.txt file as well. However the exe named drone_stateestimation was not created. And this is the exe that is connected to lapack and blas, the reason for those errors This has nothing to do with the package. It is a generic issue, I hope since the same package works fine in another laptop. I even tried reinstalling/downloading a new copy the package, but no use.
Can anybody please tell me what could be the problem?
Is there another interpretation for the following error, or a direct solution?
undefined reference to `dgemm_'
Please help. I have been stuck for really a long time.
Update :
In the Cmake file, the order of the link was
blas lapack
I changed it to
lapack blas.
Now I am facing with a new error
undefined reference to `_gfortran_st_write_done'
As per suggestions, I have maintained the LDLIBRARYPATH the same and haven't altered it like I did before,
A link had a similar question and provided a suggestion. not able to post links due to my karma.
the suggestion
UPDATE:
Your problem appears to be that the correct libraries are not being found by the linker. My first guess is that you are using "gcc" to compile and link instead of using "gfortran". GCC will compile the Fortran source but does not "know" where the standard Fortran libraries are located.
Asked by Tonystark124 on 2014-03-21 02:22:32 UTC
Comments
In my opinion removing /opt/ros/fuerte/lib from LD_LIBRARY_PATH is a very bad idea.
Asked by BennyRe on 2014-03-21 02:48:15 UTC
please check the update
Asked by Tonystark124 on 2014-03-21 08:39:54 UTC
Please do execute the following commands and provide the full output (put it e.g. on pastebin.com and post the link here, put spaces in the link to post despite low karma)
roscd tum_ardrone
,make clean
,VERBOSE=1 make -j1
.Asked by demmeln on 2014-03-22 00:09:24 UTC
Just a longshot, since you mentioned chaning the library order: What happens when you put
blas lapack blas
(blas appears twice) instead ofblas lapack
as the linked libraries?Asked by demmeln on 2014-03-22 00:11:25 UTC
I tried lapack blas gfortran and it worked.!
Asked by Tonystark124 on 2014-03-23 20:28:44 UTC