catkin / catkin_tools

Command line tools for working with catkin
Apache License 2.0
163 stars 146 forks source link

Cross compile cache problem! #383

Open ZahraBoroujeni opened 8 years ago

ZahraBoroujeni commented 8 years ago

System Info

I want to do cross compiling for arm processor. I can compile the code using catkin build, but when I want to do cross compiling for example using catkin build --profile odroid , I receive error below, but if I open CMakeLists.txt file of packages and resave them by adding a minor change like a space, it will compile correctly!

Actual Behavior

$ catkin build cv_bridge --profile odroid
---------------------------------------------------------------------------------------------------------------------------------
Profile:                     odroid
Extending:        [explicit] /opt/odroid-x2/sdk/opt/ros/indigo
Workspace:                   /home/mi/boroujeni/catkin_ws_modelcar
---------------------------------------------------------------------------------------------------------------------------------
Source Space:       [exists] /home/mi/boroujeni/catkin_ws_modelcar/src
Log Space:          [exists] /home/mi/boroujeni/catkin_ws_modelcar/logs
Build Space:        [exists] /home/mi/boroujeni/catkin_ws_modelcar/odroid-build
Devel Space:        [exists] /home/mi/boroujeni/catkin_ws_modelcar/odroid-devel
Install Space:      [unused] /home/mi/boroujeni/catkin_ws_modelcar/odroid-install
DESTDIR:            [unused] None
---------------------------------------------------------------------------------------------------------------------------------
Devel Space Layout:          merged
Install Space Layout:        None
---------------------------------------------------------------------------------------------------------------------------------
Additional CMake Args:       -DCMAKE_TOOLCHAIN_FILE=/home/mi/boroujeni/catkin_ws_modelcar/src/Toolchain-arm-linux-gnueabihf.cmake
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
---------------------------------------------------------------------------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
---------------------------------------------------------------------------------------------------------------------------------
Workspace configuration appears valid.
---------------------------------------------------------------------------------------------------------------------------------
[build] Found '19' packages in 0.0 seconds.                                                                                                                                                                 
[build] Package table is up to date.                                                                                                                                                                        
Starting  >>> cv_bridge                                                                                                                                                                                     
____________________________________________________________________________________________________________________________________________________________________________________________________________
Errors     << cv_bridge:make /home/mi/boroujeni/catkin_ws_modelcar/logs/cv_bridge/build.make.013.log                                                                                                        
In file included from /opt/odroid-x2/sdk/usr/include/opencv2/core/types_c.h:56:0,
                 from /opt/odroid-x2/sdk/usr/include/opencv2/core/core_c.h:47,
                 from /opt/odroid-x2/sdk/usr/include/opencv2/opencv.hpp:46,
                 from /home/mi/boroujeni/catkin_ws_modelcar/src/cv_bridge/include/cv_bridge/rgb_colors.h:39,
                 from /home/mi/boroujeni/catkin_ws_modelcar/src/cv_bridge/src/rgb_colors.cpp:36:
/opt/odroid-x2/sdk/usr/include/stdlib.h:955:31: fatal error: bits/stdlib-float.h: No such file or directory
compilation terminated.
make[2]: *** [src/CMakeFiles/cv_bridge.dir/rgb_colors.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /opt/odroid-x2/compiler/bin/../lib/gcc/arm-linux-gnueabihf/4.7.2/../../../../arm-linux-gnueabihf/include/c++/4.7.2/cstdlib:66:0,
                 from /opt/odroid-x2/sdk/usr/include/boost/config/platform/linux.hpp:15,
                 from /opt/odroid-x2/sdk/usr/include/boost/config.hpp:53,
                 from /home/mi/boroujeni/catkin_ws_modelcar/src/cv_bridge/src/boost/endian/conversion.hpp:11,
                 from /home/mi/boroujeni/catkin_ws_modelcar/src/cv_bridge/src/cv_bridge.cpp:36:
/opt/odroid-x2/sdk/usr/include/stdlib.h:955:31: fatal error: bits/stdlib-float.h: No such file or directory
compilation terminated.
make[2]: *** [src/CMakeFiles/cv_bridge.dir/cv_bridge.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/cv_bridge.dir/all] Error 2
make: *** [all] Error 2
cd /home/mi/boroujeni/catkin_ws_modelcar/odroid-build/cv_bridge; catkin build --get-env cv_bridge | catkin env -si  /usr/bin/make --jobserver-fds=6,7 -j; cd -
............................................................................................................................................................................................................
Failed     << cv_bridge:make           [ Exited with code 2 ]                                                                                                                                               
Failed    <<< cv_bridge                [ 0.1 seconds ]                                                                                                                                                      
[build] Summary: 0 of 1 packages succeeded.                                                                                                                                                                 
[build]   Ignored:   18 packages were skipped or are blacklisted.                                                                                                                                           
[build]   Warnings:  None.                                                                                                                                                                                  
[build]   Abandoned: None.                                                                                                                                                                                  
[build]   Failed:    1 packages failed.                                                                                                                                                                     
[build] Runtime: 0.2 seconds total.    

after add a space to CMakeLists.txt of cv_bridge and save it again, the cross compile worked!

$ catkin build cv_bridge --pre-clean --profile odroid
---------------------------------------------------------------------------------------------------------------------------------
Profile:                     odroid
Extending:        [explicit] /opt/odroid-x2/sdk/opt/ros/indigo
Workspace:                   /home/mi/boroujeni/catkin_ws_modelcar
---------------------------------------------------------------------------------------------------------------------------------
Source Space:       [exists] /home/mi/boroujeni/catkin_ws_modelcar/src
Log Space:          [exists] /home/mi/boroujeni/catkin_ws_modelcar/logs
Build Space:        [exists] /home/mi/boroujeni/catkin_ws_modelcar/odroid-build
Devel Space:        [exists] /home/mi/boroujeni/catkin_ws_modelcar/odroid-devel
Install Space:      [unused] /home/mi/boroujeni/catkin_ws_modelcar/odroid-install
DESTDIR:            [unused] None
---------------------------------------------------------------------------------------------------------------------------------
Devel Space Layout:          merged
Install Space Layout:        None
---------------------------------------------------------------------------------------------------------------------------------
Additional CMake Args:       -DCMAKE_TOOLCHAIN_FILE=/home/mi/boroujeni/catkin_ws_modelcar/src/Toolchain-arm-linux-gnueabihf.cmake
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
---------------------------------------------------------------------------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
---------------------------------------------------------------------------------------------------------------------------------
Workspace configuration appears valid.
---------------------------------------------------------------------------------------------------------------------------------
[build] Found '19' packages in 0.0 seconds.                                                                                                                                                                 
[build] Package table is up to date.                                                                                                                                                                        
Starting  >>> cv_bridge                                                                                                                                                                                     
Finished  <<< cv_bridge                [ 8.6 seconds ]                                                                                                                                                      
[build] Summary: All 1 packages succeeded!                                                                                                                                                                  
[build]   Ignored:   18 packages were skipped or are blacklisted.                                                                                                                                           
[build]   Warnings:  None.                                                                                                                                                                                  
[build]   Abandoned: None.                                                                                                                                                                                  
[build]   Failed:    None.                                                                                                                                                                                  
[build] Runtime: 8.7 seconds total. 

Steps to Reproduce the Issue

wjwwood commented 8 years ago

Generally CMake is only re-run when there's change in one of the cmake files or if one of the options given to catkin_tools changes that we know affects cmake (like the cmake arguments). What profile are you changing from and do they share the same build space? What we need to figure out is if catkin_tools could have known cmake needed to be rerun and therefore should have forced cmake to reconfigure.

Separately from that, you can force cmake to be rerun by passing the --force-cmake option to catkin build.