Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build Error on Kinetic #20

Open
AshleyF opened this issue Aug 1, 2016 · 17 comments
Open

Build Error on Kinetic #20

AshleyF opened this issue Aug 1, 2016 · 17 comments

Comments

@AshleyF
Copy link

AshleyF commented Aug 1, 2016

catkin_make shows the following error:

image

@AshleyF
Copy link
Author

AshleyF commented Aug 1, 2016

Indeed, the includes (1.9.2prerelease) which I got from the links in the readme don't include such a constructor:
image

@reed-adept
Copy link

Try the most recent prerelease (20160613), it includes the new constructor. The final 1.9.2 release will be soon.

@AshleyF
Copy link
Author

AshleyF commented Aug 1, 2016

Thank you very much for the quick reply!

I had grabbed the latest *_amd64.deb from the prerelease site. Didn't notice that there were newer i386 packages.

Now, I have libarnl_1.9.2prerelease20160613+ubuntu12+gcc4.6_i386.deb and arnl-base_1.9.2prerelease20160613+ubuntu12+gcc4.6_i386.deb and see the following:

[100%] Linking CXX executable /home/ashleyf/proj/catkin_ws/devel/lib/rosarnl/rosarnl_node
/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libArnl.so when searching for -lArnl
/usr/bin/ld: cannot find -lArnl
/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libBaseArnl.so when searching for -lBaseArnl
/usr/bin/ld: cannot find -lBaseArnl
/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libArNetworkingForArnl.so when searching for -lArNetworkingForArnl
/usr/bin/ld: cannot find -lArNetworkingForArnl
/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libAriaForArnl.so when searching for -lAriaForArnl
/usr/bin/ld: cannot find -lAriaForArnl
collect2: error: ld returned 1 exit status
ros-arnl/CMakeFiles/rosarnl_node.dir/build.make:207: recipe for target '/home/ashleyf/proj/catkin_ws/devel/lib/rosarnl/rosarnl_node' failed
make[2]: *** [/home/ashleyf/proj/catkin_ws/devel/lib/rosarnl/rosarnl_node] Error 1
CMakeFiles/Makefile2:2537: recipe for target 'ros-arnl/CMakeFiles/rosarnl_node.dir/all' failed
make[1]: *** [ros-arnl/CMakeFiles/rosarnl_node.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j16 -l16" failed

@reed-adept
Copy link

“skipping incompatible” ususally means there is a mix of 32-bit and 64-bit libraries in the link. For building on an amd64 architecture, either wait for the 1.9.2 release which will have amd64 packages, or use all 32-bit libraries and use the –m32 flag with gcc:
export CXX=”g++ -m32”

From: AshleyF [mailto:[email protected]]
Sent: Monday, August 01, 2016 3:59 PM
To: MobileRobots/ros-arnl
Cc: Reed Hedges; Comment
Subject: Re: [MobileRobots/ros-arnl] Build Error (#20)

Thank you very much for the quick reply!

I had grabbed the latest *_amd64.deb from the prerelease site. Didn't notice that there were newer i386 packages.

Now, I have libarnl_1.9.2prerelease20160613+ubuntu12+gcc4.6_i386.deb and arnl-base_1.9.2prerelease20160613+ubuntu12+gcc4.6_i386.deb and see the following:

[100%] Linking CXX executable /home/ashleyf/proj/catkin_ws/devel/lib/rosarnl/rosarnl_node

/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libArnl.so when searching for -lArnl

/usr/bin/ld: cannot find -lArnl

/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libBaseArnl.so when searching for -lBaseArnl

/usr/bin/ld: cannot find -lBaseArnl

/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libArNetworkingForArnl.so when searching for -lArNetworkingForArnl

/usr/bin/ld: cannot find -lArNetworkingForArnl

/usr/bin/ld: skipping incompatible /usr/local/Arnl/lib/libAriaForArnl.so when searching for -lAriaForArnl

/usr/bin/ld: cannot find -lAriaForArnl

collect2: error: ld returned 1 exit status

ros-arnl/CMakeFiles/rosarnl_node.dir/build.make:207: recipe for target '/home/ashleyf/proj/catkin_ws/devel/lib/rosarnl/rosarnl_node' failed

make[2]: *** [/home/ashleyf/proj/catkin_ws/devel/lib/rosarnl/rosarnl_node] Error 1

CMakeFiles/Makefile2:2537: recipe for target 'ros-arnl/CMakeFiles/rosarnl_node.dir/all' failed

make[1]: *** [ros-arnl/CMakeFiles/rosarnl_node.dir/all] Error 2

Makefile:138: recipe for target 'all' failed

make: *** [all] Error 2

Invoking "make -j16 -l16" failed


You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com//issues/20#issuecomment-236689602, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AC4MAftqw5vKcbachxHRAXDKul_KrJcEks5qblAHgaJpZM4JZ4Gx.

@AshleyF
Copy link
Author

AshleyF commented Aug 2, 2016

Thanks again for the help!

Still pounding head against the wall. Struggled with getting i386 to build along with amd64. Now I've flattened to a 32-bit install of Ubuntu and using the i386 prerelease packages. I get a different error now:

[  2%] Building CXX object ros-arnl/CMakeFiles/rosarnl_node.dir/rosarnl_node.cpp.o
/home/ashleyf/proj/catkin_ws/src/ros-arnl/rosarnl_node.cpp:31:39: fatal error: rosarnl/JogPositionAction.h: No such file or directory
compilation terminated.

devel/share/rosarnl/msg contains .msg files, but devel/include/rosarnl is empty...

@reed-adept
Copy link

reed-adept commented Aug 2, 2016

If you don't mind waiting a few days, I'll be testing ros-arnl as part of the 1.9.2 ARNL release. Make sure you have the same version of arnl-base installed as libarnl, and that they are both the same architecture. (Version dependencies aren't really in place between prereleases of the same version, since they are only meant as an easy way to distribute code for testing before an actual release.)


From: AshleyF [[email protected]]
Sent: Monday, August 01, 2016 9:26 PM
To: MobileRobots/ros-arnl
Cc: Reed Hedges; Comment
Subject: Re: [MobileRobots/ros-arnl] Build Error (#20)

Thanks again for the help!

Still pounding head against the wall. Struggled with getting i386 to build along with amd64. Now I've flattened to a 32-bit install of Ubuntu and using the i386 prerelease packages. I get a different error now:

[ 2%] Building CXX object ros-arnl/CMakeFiles/rosarnl_node.dir/rosarnl_node.cpp.o
/home/ashleyf/proj/catkin_ws/src/ros-arnl/rosarnl_node.cpp:31:39: fatal error: rosarnl/JogPositionAction.h: No such file or directory
compilation terminated.

I don't find this file anywhere.


You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com//issues/20#issuecomment-236764593, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AC4MAXxMU_buAdUUiCtpSzSnSJsCdg8bks5qbpyvgaJpZM4JZ4Gx.

@AshleyF
Copy link
Author

AshleyF commented Aug 2, 2016

I'm trying to prepare a demo for Friday. If there's any known-good pairing of (even out) library/ros-arnl (old git commit), that would be great. Any suggestions?

Otherwise, I'm thinking to just make my own ROS node to do what I need (just sending goals and some small feedback of progress and the planned path). I know I can do this directly. The demo is specifically to show a Windows/ROS bridge I'm working on though...

Thanks very much, again

From: Reed Hedges
Sent: Tuesday, August 2, 03:41
Subject: Re: [MobileRobots/ros-arnl] Build Error (#20)
To: MobileRobots/ros-arnl
Cc: AshleyF, Author

If you don't mind waiting a little while, I'll be testing ros-arnl as part of the 1.9.2 ARNL release.


From: AshleyF [[email protected]]
Sent: Monday, August 01, 2016 9:26 PM
To: MobileRobots/ros-arnl
Cc: Reed Hedges; Comment
Subject: Re: [MobileRobots/ros-arnl] Build Error (#20)

Thanks again for the help!

Still pounding head against the wall. Struggled with getting i386 to build along with amd64. Now I've flattened to a 32-bit install of Ubuntu and using the i386 prerelease packages. I get a different error now:

[ 2%] Building CXX object ros-arnl/CMakeFiles/rosarnl_node.dir/rosarnl_node.cpp.o
/home/ashleyf/proj/catkin_ws/src/ros-arnl/rosarnl_node.cpp:31:39: fatal error: rosarnl/JogPositionAction.h: No such file or directory
compilation terminated.

I don't find this file anywhere.

?
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com//issues/20#issuecomment-236764593, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AC4MAXxMU_buAdUUiCtpSzSnSJsCdg8bks5qbpyvgaJpZM4JZ4Gx.

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com//issues/20#issuecomment-236868371, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAqSyLEvemtMiqDBpnXgqi6cL25aNRvwks5qbx7GgaJpZM4JZ4Gx.

@reed-adept
Copy link

devel/include/rosarnl/JogPositionAction.h should have been generated by catkin (cmake rules for action definitions). You can try catkin_make --force-cmake --pkg rosarnl to re-run cmake.

@reed-adept
Copy link

I just created amd64 prerelease builds of libarnl and arnl-base if that helps anyone. They are 1.9.2prerelease20160802.

@AshleyF
Copy link
Author

AshleyF commented Aug 2, 2016

No luck with --force-make... 😬

Also, no luck with a completely fresh install of Ubuntu 16.04/ROS Kinetic:

ARNLBASE=arnl-base_1.9.2prerelease20160802+ubuntu12_amd64.deb
LIBARNL=libarnl_1.9.2prerelease20160802+ubuntu12_amd64.deb
CATKIN=~/proj/catkin

# install arnl-base
curl -O -u microsoft http://robots.mobilerobots.com/BaseArnl/download/prerelease/$ARNLBASE
sudo dpkg -i $ARNLBASE
rm -f $ARNLBASE

# install libarnl
curl -O -u microsoft http://robots.mobilerobots.com/ARNL/download/prerelease/$LIBARNL
sudo dpkg -i $LIBARNL
rm -f $LIBARNL

# ros-arnl
cd $CATKIN
git clone https://github.com/MobileRobots/ros-arnl src
catkin_make

Result:

[100%] Linking CXX executable /home/ashleyf/proj/setup/devel/lib/rosarnl/rosarnl_node
CMakeFiles/rosarnl_node.dir/ArnlSystem.cpp.o: In function `ArnlSystem::setup()':
ArnlSystem.cpp:(.text+0x1c4d): undefined reference to `ArServerHandlerMapping::ArServerHandlerMapping(ArServerBase*, ArRobot*, ArLaser*, char const*, char const*, bool, ArLaser*, char const*, char const*, std::__cxx11::list<ArLaser*, std::allocator<ArLaser*> >*)'
ArnlSystem.cpp:(.text+0x1ffa): undefined reference to `ArConfig::parseFile(char const*, bool, bool, char*, unsigned long, std::__cxx11::list<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, ArPriority::Priority, ArPriority::Priority, ArConfigArg::RestartLevel*)'
CMakeFiles/rosarnl_node.dir/ArnlSystem.cpp.o: In function `ArRangeDevice::getCurrentBuffer[abi:cxx11]() const':
ArnlSystem.cpp:(.text._ZNK13ArRangeDevice16getCurrentBufferB5cxx11Ev[_ZNK13ArRangeDevice16getCurrentBufferB5cxx11Ev]+0x18): undefined reference to `ArRangeBuffer::getBuffer[abi:cxx11]() const'
CMakeFiles/rosarnl_node.dir/ArnlSystem.cpp.o: In function `ArRangeDevice::getCumulativeBuffer[abi:cxx11]() const':
ArnlSystem.cpp:(.text._ZNK13ArRangeDevice19getCumulativeBufferB5cxx11Ev[_ZNK13ArRangeDevice19getCumulativeBufferB5cxx11Ev]+0x1a): undefined reference to `ArRangeBuffer::getBuffer[abi:cxx11]() const'
CMakeFiles/rosarnl_node.dir/ArnlSystem.cpp.o: In function `ArRangeDevice::getCurrentBuffer[abi:cxx11]()':
ArnlSystem.cpp:(.text._ZN13ArRangeDevice16getCurrentBufferB5cxx11Ev[_ZN13ArRangeDevice16getCurrentBufferB5cxx11Ev]+0x18): undefined reference to `ArRangeBuffer::getBuffer[abi:cxx11]()'
CMakeFiles/rosarnl_node.dir/ArnlSystem.cpp.o: In function `ArRangeDevice::getCumulativeBuffer[abi:cxx11]()':
ArnlSystem.cpp:(.text._ZN13ArRangeDevice19getCumulativeBufferB5cxx11Ev[_ZN13ArRangeDevice19getCumulativeBufferB5cxx11Ev]+0x1a): undefined reference to `ArRangeBuffer::getBuffer[abi:cxx11]()'
CMakeFiles/rosarnl_node.dir/LaserPublisher.cpp.o: In function `LaserPublisher::publishPointCloud()':
LaserPublisher.cpp:(.text+0x12bb): undefined reference to `ArRangeBuffer::getBuffer[abi:cxx11]()'
collect2: error: ld returned 1 exit status
CMakeFiles/rosarnl_node.dir/build.make:207: recipe for target '/home/ashleyf/proj/setup/devel/lib/rosarnl/rosarnl_node' failed
make[2]: *** [/home/ashleyf/proj/setup/devel/lib/rosarnl/rosarnl_node] Error 1
CMakeFiles/Makefile2:2238: recipe for target 'CMakeFiles/rosarnl_node.dir/all' failed
make[1]: *** [CMakeFiles/rosarnl_node.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j16 -l16" failed

Other packages build fine... If you can see what I'm doing wrong, please let me know!
Thanks!

Looking forward to the 1.9.2 official release!

@reed-adept
Copy link

Do you pull $CATKIN/devel/setub.bash into your script at some point earlier?

@AshleyF
Copy link
Author

AshleyF commented Aug 2, 2016

Yes, I actually have in my .zshrc:

source /opt/ros/kinetic/setup.zsh
source ~/proj/catkin_ws/devel/setup.zsh

@reed-adept
Copy link

So you are using ROS Kinetic on Ubuntu 16.04, correct?

@reed-adept
Copy link

Is the ros-arnl git repository cloned into src or src/ros-arnl? (or src/rosarnl or whatever you prefer)? It should be in its own directory inside src.

@AshleyF
Copy link
Author

AshleyF commented Aug 2, 2016

I may have found the magic combination :)

The above works on Ubuntu 14.04 and ROS Indigo (but apparently not on 16.04/Kinetic? Maybe I'm missing something, but trying on VMs from clean checkpoints [just after installing ROS and nothing else], it seems to be the case).

I believe I'm in business now, thanks very much for all the help!

@reed-adept
Copy link

reed-adept commented Aug 2, 2016

I'm testing it on kinetic/16.04/amd64 now (with the ubuntu12 prerelease amd64 packages). The final 1.9.2 ARNL release will have all of (Ubuntu 12.04, Ubuntu 16.04, Windows) X (i386, amd64)

@reed-adept reed-adept changed the title Build Error Build Error on Kinetic Aug 2, 2016
@reed-adept
Copy link

reed-adept commented Aug 2, 2016

Just tried with a fresh clone of ros-arnl in a new catkin workxspace with Kinetic on Ubuntu Xenial amd64. Seems to work. These are the first few messages from catkin_make, which indicate the action message code is being generated:

reed@rh-xenial:~/ros-kinetic-ws$ catkin_make
Base path: /home/reed/ros-kinetic-ws
Source space: /home/reed/ros-kinetic-ws/src
Build space: /home/reed/ros-kinetic-ws/build
Devel space: /home/reed/ros-kinetic-ws/devel
Install space: /home/reed/ros-kinetic-ws/install

Running command: "make cmake_check_build_system" in "/home/reed/ros-kinetic-ws/build"

Running command: "make -j2 -l2" in "/home/reed/ros-kinetic-ws/build"

[ 0%] Built target actionlib_msgs_generate_messages_nodejs
[ 0%] Built target _rosarnl_generate_messages_check_deps_JogPositionAction
[ 0%] Built target _rosarnl_generate_messages_check_deps_JogPositionResult
[ 0%] Built target _rosarnl_generate_messages_check_deps_JogPositionGoal
[ 0%] Built target _rosarnl_generate_messages_check_deps_JogPositionFeedback
[ 0%] Built target nav_msgs_generate_messages_nodejs
[ 0%] Built target _rosarnl_generate_messages_check_deps_JogPositionActionFeedback
[ 0%] Built target _rosarnl_generate_messages_check_deps_JogPositionActionResult
[ 0%] Built target _rosarnl_generate_messages_check_deps_JogPositionActionGoal
...

Not sure what else to try, other than check what the working direcotry is since catkin is sensitive to that, and make sure all the ros kinetic packages are up to date? (I did an apt-get upgrade and rosdep update && rosdep install -a && rosdep install rosarnl right before building to make sure I had all the packages needed)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants