On Mon, Nov 26, 2012 at 8:06 PM, Wim Meeussen 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