[Ros-release] Dry stack prereleases for groovy

Peter Soetens peter at thesourceworks.com
Mon Nov 26 21:02:58 UTC 2012


On Mon, Nov 26, 2012 at 8:06 PM, Wim Meeussen <wim at hidof.com> wrote:
> I had done the exact same thing and added the workaround to the Jenkins
> setup preamble. This is the verbose output of what actually gets called:
>
>
>
>
> /usr/bin/c++    -pthread -O2 -g
> -L/tmp/install_dir/stack_overlay/unique_identifier/unique_id/lib
> CMakeFiles/test_unique_id.dir/tests/test_unique_id.cpp.o  -o
> ../bin/test_unique_id -rdynamic -L/opt/ros/groovy/lib -lroscpp
> -lboost_signals-mt -lboost_filesystem-mt -lrosconsole -lroscpp_serialization
> -lxmlrpcpp -lrostime -lboost_date_time-mt -lboost_system-mt
> -lboost_thread-mt -lpthread -lcpp_common -l/usr/lib/libgtest.a
> -Wl,-rpath,/opt/ros/groovy/lib
>
> /usr/bin/ld: cannot find -l/usr/lib/libgtest.a

I think it would work with dropping the '-l' part, although my
interpretation of the ld man page would say that
-l:/usr/lib/libgtest.a would also work. So if you can hard-code that
colon somewhere, you're done too.

>
>
>
>
> So somewhere rosmake is using "-l/usr/lib/libgtest.a" instead of "-L
> /usr/lib -lgtest". Any suggestions from a rosmake guru?

You're of course waiting for Brian to take the bait :-) The latter
form is considered bad practice. One should always use the absolute
path and no search paths.

Peter



More information about the Ros-release mailing list