Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all articles
Browse latest Browse all 417

catkin_make vs. catkin build for CGAL

$
0
0
Hi all, I have a ROS package, which did work, when I compiled it with "catkin_make". It still compiles with "catkin build" (see [catkin_tools](http://catkin-tools.readthedocs.org)), but it does not run anymore. The created executable is using [CGAL](http://www.cgal.org/), and that library is complaining about some rounding issue, when I compile it with "catkin build". Here is the runtime error: terminate called after throwing an instance of 'CGAL::Assertion_exception' what(): CGAL ERROR: assertion violation! Expr: -CGAL_IA_MUL(-1.1, 10.1) != CGAL_IA_MUL(1.1, 10.1) File: /usr/include/CGAL/Interval_nt.h Line: 209 Explanation: Wrong rounding: did you forget the -frounding-math option if you use GCC (or -fp-model strict for Intel)? Aborted (core dumped) Does anybody has a clue, why catkin build breaks it? Here is my CMakeLists.txt: cmake_minimum_required(VERSION 2.8.3) project(msl_base) ## Use c++ 11x std set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") ## Enable exception handling for segfaults set(CMAKE_CXX_FLAGS "-rdynamic -g -fnon-call-exceptions -ggdb ${CMAKE_CXX_FLAGS}") ## Used for cgal set(CGAL_DONT_OVERRIDE_CMAKE_FLAGS TRUE CACHE BOOL "Don't override flags") set(CMAKE_CXX_FLAGS "-lCGAL -lCGAL_Core -frounding-math ${CMAKE_CXX_FLAGS}") ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages find_package(catkin REQUIRED COMPONENTS roscpp system_config system_util fsystem autodiff event_handling alica_engine alica_ros_proxy msl_expressions msl_worldmodel ) find_package(CGAL REQUIRED COMPONENTS Core) ################################### ## catkin specific configuration ## ################################### ## The catkin_package macro generates cmake config files for your package ## Declare things to be passed to dependent projects ## INCLUDE_DIRS: uncomment this if you package contains header files ## LIBRARIES: libraries you create in this project that dependent projects also need ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need catkin_package( INCLUDE_DIRS include LIBRARIES CATKIN_DEPENDS alica_engine alica_ros_proxy msl_expressions msl_simulator msl_worldmodel DEPENDS cgal ) ########### ## Build ## ########### ## Specify additional locations of header files ## Your package locations should be listed before other locations include_directories(include ${catkin_INCLUDE_DIRS} ${CGAL_INCLUDE_DIRS}) include(${CGAL_USE_FILE}) ## Declare a cpp executable add_executable(msl_base src/Base.cpp) ## Specify libraries to link a library or executable target against target_link_libraries(msl_base ${catkin_LIBRARIES} ${CGAL_LIBRARIES}) ## Add cmake target dependencies of the executable/library ## as an example, message headers may need to be generated before nodes add_dependencies(msl_base ${catkin_LIBRARIES} ${CGAL_LIBRARIES})

Viewing all articles
Browse latest Browse all 417

Trending Articles