hello, I'm working on a C++ package for ROS (robot operating system) that uses a C library libccv.a. ROS uses CMake which is why I am asking here. Asking at ROS answers did not help and I am totally stuck.
here is the relevant part of my CMakeLists.txt: set(SOURCES src/${PROJECT_NAME}.cpp src/RosDispatcher.cpp src/Text2D.cpp src/TDetector.cpp src/TRecognizer.cpp) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") find_package(CCV REQUIRED) include_directories(${CCV_INCLUDE_DIR}) set(LIBS ${LIBS} ${CCV_LIBRARY}) find_package(JPEG REQUIRED) include_directories(${JPEG_INCLUDE_DIR}) set(LIBS ${LIBS} ${JPEG_LIBRARY}) find_package(PNG REQUIRED) include_directories(${PNG_INCLUDE_DIR}) set(LIBS ${LIBS} ${PNG_LIBRARY}) message(STATUS "linked libs: ${LIBS}") rosbuild_add_executable(${PROJECT_NAME} ${SOURCES}) target_link_libraries(${PROJECT_NAME} ${LIBS}) I am getting this error: undefined reference to `ccv_read_impl(...)' and more undefined references to the stuff from the library libccv.a comes with a header file ccv.h and it depends on libjpeg and libpng. I wrote my own FindCCV.cmake to find the library and put it into ${CMAKE_SOURCE_DIR}/cmake/Modules/, together with finders for jpeg and png. As far as I know, all three are found successfully (the REQUIRED keyword doesn't stop compilation and there are correct address entries in CMakeCache). The libraries are in correct order ccv, jpeg, png (ccv depends on them). here <http://pastebin.com/iye7iuqX> [pastebin] is output of the compilation here <http://pastebin.com/f6WK1A1x> is my FindCCV.cmake Please, what am I doing wrong? Any help is very greatly appreciated, thanks!
-- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake