[CMake] Fwd: linking libraries at many levels

Pol Monsó IRI pmonso at iri.upc.edu
Tue Aug 25 10:11:59 EDT 2009


My message bounced due to size limitations (!?). I'm resending it without
the appended previous replies.

In case you'd like to see the compilation too, here's the complete output.
The 1A's and 1B's real name is wammoves and inout and the 2C's is wammates.

yarp is an external 3d party libraries framework for robot software, it's
all under the yarp-2.2.2 folder, the rest is my code. So you see something
wrong about yarp? It didn't give any headache when it was all in just one
big file.

monso at delucia:~/YARP/Calclient$ make clean
> pmonso at delucia:~/YARP/Calclient$ make VERBOSE=1
> /usr/local/bin/cmake -H/home/pmonso/YARP/Calclient
> -B/home/pmonso/YARP/Calclient --check-build-system CMakeFiles/Makefile.cmake
> 0
> /usr/local/bin/cmake -E cmake_progress_start
> /home/pmonso/YARP/Calclient/CMakeFiles
> /home/pmonso/YARP/Calclient/CMakeFiles/progress.make
> make -f CMakeFiles/Makefile2 all
> make[1]: Entering directory `/home/pmonso/YARP/Calclient'
> make -f lib/CMakeFiles/callibs.dir/build.make
> lib/CMakeFiles/callibs.dir/depend
> make[2]: Entering directory `/home/pmonso/YARP/Calclient'
> cd /home/pmonso/YARP/Calclient && /usr/local/bin/cmake -E cmake_depends
> "Unix Makefiles" /home/pmonso/YARP/Calclient /home/pmonso/YARP/Calclient/lib
> /home/pmonso/YARP/Calclient /home/pmonso/YARP/Calclient/lib
> /home/pmonso/YARP/Calclient/lib/CMakeFiles/callibs.dir/DependInfo.cmake
> --color=
> make[2]: Leaving directory `/home/pmonso/YARP/Calclient'
> make -f lib/CMakeFiles/callibs.dir/build.make
> lib/CMakeFiles/callibs.dir/build
> make[2]: Entering directory `/home/pmonso/YARP/Calclient'
> /usr/local/bin/cmake -E cmake_progress_report
> /home/pmonso/YARP/Calclient/CMakeFiles 3
> [ 20%] Building CXX object lib/CMakeFiles/callibs.dir/wammates.cpp.o
> cd /home/pmonso/YARP/Calclient/lib && /usr/bin/c++   -D_REENTRANT
> -DYARP_LITTLE_ENDIAN -DYARP_INT32=int -DYARP_INT16=short
> -DYARP_FLOAT64=double -Wall -g
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_OS/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_sig/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_dev/include   -o
> CMakeFiles/callibs.dir/wammates.cpp.o -c
> /home/pmonso/YARP/Calclient/lib/wammates.cpp
> /usr/local/bin/cmake -E cmake_progress_report
> /home/pmonso/YARP/Calclient/CMakeFiles 4
> [ 40%] Building CXX object lib/CMakeFiles/callibs.dir/inout.cpp.o
> cd /home/pmonso/YARP/Calclient/lib && /usr/bin/c++   -D_REENTRANT
> -DYARP_LITTLE_ENDIAN -DYARP_INT32=int -DYARP_INT16=short
> -DYARP_FLOAT64=double -Wall -g
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_OS/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_sig/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_dev/include   -o
> CMakeFiles/callibs.dir/inout.cpp.o -c
> /home/pmonso/YARP/Calclient/lib/inout.cpp
> /usr/local/bin/cmake -E cmake_progress_report
> /home/pmonso/YARP/Calclient/CMakeFiles 5
> [ 60%] Building CXX object lib/CMakeFiles/callibs.dir/wammoves.cpp.o
> cd /home/pmonso/YARP/Calclient/lib && /usr/bin/c++   -D_REENTRANT
> -DYARP_LITTLE_ENDIAN -DYARP_INT32=int -DYARP_INT16=short
> -DYARP_FLOAT64=double -Wall -g
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_OS/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_sig/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_dev/include   -o
> CMakeFiles/callibs.dir/wammoves.cpp.o -c
> /home/pmonso/YARP/Calclient/lib/wammoves.cpp
> Linking CXX static library libcallibs.a
> cd /home/pmonso/YARP/Calclient/lib && /usr/local/bin/cmake -P
> CMakeFiles/callibs.dir/cmake_clean_target.cmake
> cd /home/pmonso/YARP/Calclient/lib && /usr/local/bin/cmake -E
> cmake_link_script CMakeFiles/callibs.dir/link.txt --verbose=1
> /usr/bin/ar cr libcallibs.a  CMakeFiles/callibs.dir/wammates.cpp.o
> CMakeFiles/callibs.dir/inout.cpp.o CMakeFiles/callibs.dir/wammoves.cpp.o
> /usr/bin/ranlib libcallibs.a
> make[2]: Leaving directory `/home/pmonso/YARP/Calclient'
> /usr/local/bin/cmake -E cmake_progress_report
> /home/pmonso/YARP/Calclient/CMakeFiles  3 4 5
> [ 60%] Built target callibs
> make -f CMakeFiles/calClient.dir/build.make CMakeFiles/calClient.dir/depend
> make[2]: Entering directory `/home/pmonso/YARP/Calclient'
> cd /home/pmonso/YARP/Calclient && /usr/local/bin/cmake -E cmake_depends
> "Unix Makefiles" /home/pmonso/YARP/Calclient /home/pmonso/YARP/Calclient
> /home/pmonso/YARP/Calclient /home/pmonso/YARP/Calclient
> /home/pmonso/YARP/Calclient/CMakeFiles/calClient.dir/DependInfo.cmake
> --color=
> make[2]: Leaving directory `/home/pmonso/YARP/Calclient'
> make -f CMakeFiles/calClient.dir/build.make CMakeFiles/calClient.dir/build
> make[2]: Entering directory `/home/pmonso/YARP/Calclient'
> /usr/local/bin/cmake -E cmake_progress_report
> /home/pmonso/YARP/Calclient/CMakeFiles 1
> [ 80%] Building CXX object CMakeFiles/calClient.dir/calClient.cpp.o
> /usr/bin/c++   -D_REENTRANT -DYARP_LITTLE_ENDIAN -DYARP_INT32=int
> -DYARP_INT16=short -DYARP_FLOAT64=double -Wall -g
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_OS/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_sig/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_dev/include
> -I/home/pmonso/YARP/Calclient/lib -I/usr/include/opencv
> -I/usr/include/opencv/..   -o CMakeFiles/calClient.dir/calClient.cpp.o -c
> /home/pmonso/YARP/Calclient/calClient.cpp
> /home/pmonso/YARP/Calclient/calClient.cpp: In function ‘void
> calibrate(yarp::dev::IPositionControl*, yarp::dev::IEncoders*)’:
> /home/pmonso/YARP/Calclient/calClient.cpp:127: warning: unused variable ‘j’
> /home/pmonso/YARP/Calclient/calClient.cpp: In function ‘void
> randomCalibrate(yarp::dev::IPositionControl*, yarp::dev::IEncoders*)’:
> /home/pmonso/YARP/Calclient/calClient.cpp:177: warning: unused variable ‘j’
> /home/pmonso/YARP/Calclient/calClient.cpp:177: warning: unused variable ‘k’
> /home/pmonso/YARP/Calclient/calClient.cpp: In function ‘void
> catchObject(yarp::dev::IPositionControl*, yarp::dev::IEncoders*)’:
> /home/pmonso/YARP/Calclient/calClient.cpp:340: warning: unused variable ‘i’
> /home/pmonso/YARP/Calclient/calClient.cpp:340: warning: unused variable ‘j’
> /home/pmonso/YARP/Calclient/calClient.cpp: In function ‘void
> mainWam(yarp::dev::PolyDriver&)’:
> /home/pmonso/YARP/Calclient/calClient.cpp:388: warning: unused variable
> ‘joints’
> /home/pmonso/YARP/Calclient/calClient.cpp:389: warning: unused variable
> ‘flag’
> /home/pmonso/YARP/Calclient/calClient.cpp: In function ‘int
> savePosition_test(int)’:
> /home/pmonso/YARP/Calclient/calClient.cpp:335: warning: control reaches end
> of non-void function
> /usr/local/bin/cmake -E cmake_progress_report
> /home/pmonso/YARP/Calclient/CMakeFiles 2
> [100%] Building CXX object CMakeFiles/calClient.dir/chaser.cpp.o
> /usr/bin/c++   -D_REENTRANT -DYARP_LITTLE_ENDIAN -DYARP_INT32=int
> -DYARP_INT16=short -DYARP_FLOAT64=double -Wall -g
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_OS/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_sig/include
> -I/home/pmonso/YARP/yarp-2.2.2/src/libYARP_dev/include
> -I/home/pmonso/YARP/Calclient/lib -I/usr/include/opencv
> -I/usr/include/opencv/..   -o CMakeFiles/calClient.dir/chaser.cpp.o -c
> /home/pmonso/YARP/Calclient/chaser.cpp
> /home/pmonso/YARP/Calclient/chaser.cpp: In member function ‘CvPoint
> Chaser::camera2World(CvPoint, CvPoint)’:
> /home/pmonso/YARP/Calclient/chaser.cpp:414: warning: unused variable
> ‘aux_x’
> /home/pmonso/YARP/Calclient/chaser.cpp: In member function ‘Pair
> Chaser::findObjectCoordinatesCV(CvMat*)’:
> /home/pmonso/YARP/Calclient/chaser.cpp:289: warning: control reaches end of
> non-void function
> /home/pmonso/YARP/Calclient/chaser.cpp: In member function ‘Pair
> Chaser::findCircle()’:
> /home/pmonso/YARP/Calclient/chaser.cpp:230: warning: control reaches end of
> non-void function
> Linking CXX executable calClient
> /usr/local/bin/cmake -E cmake_link_script CMakeFiles/calClient.dir/link.txt
> --verbose=1
> /usr/bin/c++   -Wall -g  -fPIC CMakeFiles/calClient.dir/calClient.cpp.o
> CMakeFiles/calClient.dir/chaser.cpp.o  -o calClient -rdynamic -Llib
> /home/pmonso/YARP/yarp-2.2.2/lib/libYARP_dev.a
> /home/pmonso/YARP/yarp-2.2.2/lib/libYARP_sig.a
> /home/pmonso/YARP/yarp-2.2.2/lib/libYARP_OS.a -lACE -lcv -lcvaux -lcxcore
> -lhighgui lib/libcallibs.a /home/pmonso/YARP/yarp-2.2.2/lib/libYARP_dev.a
> /home/pmonso/YARP/yarp-2.2.2/lib/libYARP_sig.a
> /home/pmonso/YARP/yarp-2.2.2/lib/libYARP_OS.a -lACE -Wl,-rpath,lib
> CMakeFiles/calClient.dir/calClient.cpp.o: In function
> `incrementalCalibrate(yarp::dev::IPositionControl*, yarp::dev::IEncoders*)':
> /home/pmonso/YARP/Calclient/calClient.cpp:276: undefined reference to
> `print_double_array(double const*, int)'
> /home/pmonso/YARP/Calclient/calClient.cpp:277: undefined reference to
> `print_double_array(double const*, int)'
> /home/pmonso/YARP/Calclient/calClient.cpp:295: undefined reference to
> `print_double_array(double const*, int)'
> CMakeFiles/calClient.dir/calClient.cpp.o: In function
> `calibrate(yarp::dev::IPositionControl*, yarp::dev::IEncoders*)':
> /home/pmonso/YARP/Calclient/calClient.cpp:155: undefined reference to
> `print_double_array(double const*, int)'
> CMakeFiles/calClient.dir/calClient.cpp.o: In function
> `randomCalibrate(yarp::dev::IPositionControl*, yarp::dev::IEncoders*)':
> /home/pmonso/YARP/Calclient/calClient.cpp:207: undefined reference to
> `print_double_array(double const*, int)'
> CMakeFiles/calClient.dir/calClient.cpp.o:/home/pmonso/YARP/Calclient/calClient.cpp:208:
> more undefined references to `print_double_array(double const*, int)' follow
> collect2: ld returned 1 exit status
> make[2]: *** [calClient] Error 1
> make[2]: Leaving directory `/home/pmonso/YARP/Calclient'
> make[1]: *** [CMakeFiles/calClient.dir/all] Error 2
> make[1]: Leaving directory `/home/pmonso/YARP/Calclient'
> make: *** [all] Error 2
> pmonso at delucia:~/YARP/Calclient$
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20090825/a6b11eb8/attachment.htm>


More information about the CMake mailing list