Problems compiling OCL on Ubuntu Gutsy with RTAI 3.6.2

Hi,

I have successfully installed the RTT for target lxrt but it fails when Linking CXX executable helloworld
/usr/src/orocos-ocl-1.8.0/ocl/liborocos-ocl-common-lxrt.so: undefined reference to `RTT::OS::StartStopManager::startFunction(boost::function)'

Here is the log:

[ 0%] Built target message
[ 5%] Building CXX object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/ocltoolkit.o
[ 11%] Building CXX object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/HMIConsoleOutput.o
Linking CXX shared library liborocos-ocl-common-lxrt.so
[ 11%] Built target orocos-ocl-common-lxrt
[ 16%] Building CXX object taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/TaskBrowser.o
Dans le fichier inclus à partir de /usr/local/include/rtt/scripting/parser-types.hpp:40,
à partir de /usr/local/include/rtt/scripting/PeerParser.hpp:43,
à partir de /usr/src/orocos-ocl-1.8.0/taskbrowser/TaskBrowser.cpp:69:
/usr/local/include/boost/spirit.hpp:18:4: attention : #warning "This header is deprecated. Please use: boost/spirit/include/classic.hpp"
Linking CXX shared library liborocos-taskbrowser-lxrt.so
[ 16%] Built target orocos-taskbrowser-lxrt
[ 22%] Building CXX object timer/CMakeFiles/orocos-timer-lxrt.dir/TimerComponent.o
Linking CXX shared library liborocos-timer-lxrt.so
[ 22%] Built target orocos-timer-lxrt
[ 27%] Building CXX object helloworld/CMakeFiles/helloworld.dir/HelloWorld.o
Linking CXX executable helloworld
/usr/src/orocos-ocl-1.8.0/ocl/liborocos-ocl-common-lxrt.so: undefined reference to `RTT::OS::StartStopManager::startFunction(boost::function)'

I did a make check on the RTT build after
However when i do a make check it fails at the tests.
Here's the log I got.
Linking CXX executable task-test
[100%] Built target task-test
Start processing tests
Test project /usr/src/orocos-rtt-1.8.0/build/tests
Constructing a list of tests
Done constructing a list of tests
Changing directory into /usr/src/orocos-rtt-1.8.0/build/tests
1/ 8 Testing core-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/core-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault
2/ 8 Testing task-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/task-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault
3/ 8 Testing event-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/event-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault
4/ 8 Testing taskcontext-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/taskcontext-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault
5/ 8 Testing parser-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/parser-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault
6/ 8 Testing program-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/program-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault
7/ 8 Testing state-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/state-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault
8/ 8 Testing dev-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/dev-test
-- Process completed

*** Exception executing: Segmentation fault
***Exception: SegFault

0% tests passed, 8 tests failed out of 8

The following tests FAILED:
1 - core-test (SEGFAULT)
2 - task-test (SEGFAULT)
3 - event-test (SEGFAULT)
4 - taskcontext-test (SEGFAULT)
5 - parser-test (SEGFAULT)
6 - program-test (SEGFAULT)
7 - state-test (SEGFAULT)
8 - dev-test (SEGFAULT)
Errors while running CTest

Is that normal?

Thanks

Problems compiling OCL on Ubuntu Gutsy with RTAI 3.6.2

On Wednesday 18 February 2009 23:15:03 yu [dot] david [..] ... wrote:
> Hi,
>
> I have successfully installed the RTT for target lxrt but it fails when
> Linking CXX executable helloworld
> /usr/src/orocos-ocl-1.8.0/ocl/liborocos-ocl-common-lxrt.so: undefined
> reference to `RTT::OS::StartStopManager::startFunction(boost::function<int
> ()()>)'

It seems that the link flags for hello world executable are not set
correctly or that the build of the RTT went wrong.

Just to be sure that the lib is ok, check that you get this output:

$ nm -C /usr/local/lib/liborocos-rtt-lxrt.so |grep RTT::OS::StartStopManager::startFunction
000000000033dd70 T RTT::OS::StartStopManager::startFunction(boost::function<int ()(), std::allocator<void> >)

Also, check out RTT the installation manual when looking for
clues for what migh gone wrong during the build or installation.

Peter

Thank you Peter for your

Thank you Peter for your inputs.
I do get the following output:
002ff2c0 T RTT::OS::StartStopManager::startFunction(boost::function >)

I ran the make check command for the RTT and the test all passed:
cv4508@RDLE00769MDL:/usr/src/orocos-rtt-1.8.0/build$ sudo make check
[sudo] password for cv4508:
[ 18%] Built target taskcontext-test
[ 36%] Built target core-test
[ 45%] Built target dev-test
[ 54%] Built target event-test
[ 63%] Built target parser-test
[ 63%] Built target prep-cpf
[ 81%] Built target program-test
[ 81%] Built target state-test
[100%] Built target task-test
Start processing tests
Test project /usr/src/orocos-rtt-1.8.0/build/tests
Constructing a list of tests
Done constructing a list of tests
Changing directory into /usr/src/orocos-rtt-1.8.0/build/tests
1/ 8 Testing core-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/core-test
.......................

OK (23)
-- Process completed
Passed
2/ 8 Testing task-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/task-test
...............

OK (15)
-- Process completed
Passed
3/ 8 Testing event-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/event-test
....................

OK (20)
-- Process completed
Passed
4/ 8 Testing taskcontext-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/taskcontext-test
............................

OK (28)
-- Process completed
Passed
5/ 8 Testing parser-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/parser-test
..............

OK (14)
-- Process completed
Passed
6/ 8 Testing program-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/program-test
...................

OK (19)
-- Process completed
Passed
7/ 8 Testing state-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/state-test
........

OK (8)
-- Process completed
Passed
8/ 8 Testing dev-test
Test command: /usr/src/orocos-rtt-1.8.0/build/tests/dev-test
..

OK (2)
-- Process completed
Passed

100% tests passed, 0 tests failed out of 8
[100%] Built target check

Is it still possible that I haven't installed RTT properly?
Thanks,

David

Thank you Peter for your

On Thursday 19 February 2009 23:40:25 yu [dot] david [..] ... wrote:
> Thank you Peter for your inputs.
> I do get the following output:
> 002ff2c0 T RTT::OS::StartStopManager::startFunction(boost::function<int
> ()(), std::allocator<void> >)

That looks ok. Also, the unit tests compile and link, so the RTT library is
ok. It looks like an installation or link flags in OCL problem...

Ironically, your other components seem to compile and link fine, it's only the
'helloworld' executable that fails to link. Could you turn OFF the HELLOWORLD
component using ccmake (then press 'c', 'g') and continue the compilation
process to see how far you get ?

Clearly, I can't reproduce this on any of my systems.

Peter

Hi,as I turned off the

Hi,

as I turned off the helloworld example, it went further to the reporting component and another error refering to PropertyBag from RTT stating it can't find the member findValue in it. Finally, I got pointed out by Philippe that it was version problem that I have. I still had the RTT version 1.6.1 on the computer after it was removed and RTT recompiled. The OCL compiled fine until the deployer.

cv4508@RDLE00769MDL:/usr/src/orocos-ocl-1.8.0$ sudo make
Use: make\ docapi\ dochtml\ docpdf to build the documentation.
[ 0%] Built target message
Scanning dependencies of target orocos-ocl-common-lxrt
[ 5%] Building CXX object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/ocltoolkit.o
[ 11%] Building CXX object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/HMIConsoleOutput.o
Linking CXX shared library liborocos-ocl-common-lxrt.so
[ 11%] Built target orocos-ocl-common-lxrt
Scanning dependencies of target orocos-taskbrowser-lxrt
[ 16%] Building CXX object taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/TaskBrowser.o
Dans le fichier inclus à partir de /usr/local/include/rtt/scripting/parser-types.hpp:40,
à partir de /usr/local/include/rtt/scripting/PeerParser.hpp:43,
à partir de /usr/src/orocos-ocl-1.8.0/taskbrowser/TaskBrowser.cpp:69:
/usr/local/include/boost/spirit.hpp:18:4: attention : #warning "This header is deprecated. Please use: boost/spirit/include/classic.hpp"
Linking CXX shared library liborocos-taskbrowser-lxrt.so
[ 16%] Built target orocos-taskbrowser-lxrt
Scanning dependencies of target orocos-timer-lxrt
[ 22%] Building CXX object timer/CMakeFiles/orocos-timer-lxrt.dir/TimerComponent.o
Linking CXX shared library liborocos-timer-lxrt.so
[ 22%] Built target orocos-timer-lxrt
Scanning dependencies of target helloworld
[ 27%] Building CXX object helloworld/CMakeFiles/helloworld.dir/HelloWorld.o
Linking CXX executable helloworld
[ 27%] Built target helloworld
Scanning dependencies of target orocos-helloworld-lxrt
[ 33%] Building CXX object helloworld/CMakeFiles/orocos-helloworld-lxrt.dir/HelloWorld.o
Linking CXX shared library liborocos-helloworld-lxrt.so
[ 33%] Built target orocos-helloworld-lxrt
Scanning dependencies of target orocos-reporting-lxrt
[ 38%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/command.o
[ 44%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/ConsoleReporting.o
[ 50%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/datasender.o
[ 55%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/FileReporting.o
[ 61%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/ReportingComponent.o
[ 66%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/socket.o
[ 72%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/socketmarshaller.o
[ 77%] Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/TcpReporting.o
Linking CXX shared library liborocos-reporting-lxrt.so
[ 77%] Built target orocos-reporting-lxrt
Scanning dependencies of target orocos-deployment-lxrt
[ 83%] Building CXX object deployment/CMakeFiles/orocos-deployment-lxrt.dir/DeploymentComponent.o
[ 88%] Building CXX object deployment/CMakeFiles/orocos-deployment-lxrt.dir/ComponentLoader.o
Linking CXX shared library liborocos-deployment-lxrt.so
[ 88%] Built target orocos-deployment-lxrt
Scanning dependencies of target deployer-lxrt
[ 94%] Building CXX object bin/CMakeFiles/deployer-lxrt.dir/deployer.o
[100%] Building CXX object bin/CMakeFiles/deployer-lxrt.dir/deployer-funcs.o
Linking CXX executable deployer-lxrt
CMakeFiles/deployer-lxrt.dir/deployer-funcs.o: In function `OCL::deployerParseCmdLine(int, char**, std::basic_string, std::allocator >&, std::basic_string, std::allocator >&, boost::program_options::variables_map&, boost::program_options::options_description*)':
deployer-funcs.cpp:(.text+0x698): undefined reference to `boost::program_options::options_description::m_default_line_length'
collect2: ld a retourné 1 code d'état d'exécution
make[2]: *** [bin/deployer-lxrt] Erreur 1
make[1]: *** [bin/CMakeFiles/deployer-lxrt.dir/all] Erreur 2
make: *** [all] Erreur 2

I currently have boost version 1.34.1. installed. Do I need the latest version 1.38 for it to work?

David

Hi,as I turned off the

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Friday 20 February 2009 16:17:49 yu [dot] david [..] ... wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; as I turned off the helloworld example, it went further to the reporting<br>
&gt; component and another error refering to PropertyBag from RTT stating it<br>
&gt; can't find the member findValue in it. Finally, I got pointed out by<br>
&gt; Philippe that it was version problem that I have. I still had the RTT<br>
&gt; version 1.6.1 on the computer after it was removed and RTT recompiled. The<br>
&gt; OCL compiled fine until the deployer.<br>
&gt;<br>
&gt; cv4508@RDLE00769MDL:/usr/src/orocos-ocl-1.8.0$ sudo make<br>
&gt; Use: make\ docapi\ dochtml\ docpdf to build the documentation.<br>
&gt; [ 0%] Built target message<br>
&gt; Scanning dependencies of target orocos-ocl-common-lxrt<br>
&gt; [ 5%] Building CXX object<br>
&gt; ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/ocltoolkit.o [ 11%] Building CXX<br>
&gt; object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/HMIConsoleOutput.o Linking<br>
&gt; CXX shared library liborocos-ocl-common-lxrt.so<br>
&gt; [ 11%] Built target orocos-ocl-common-lxrt<br>
&gt; Scanning dependencies of target orocos-taskbrowser-lxrt<br>
&gt; [ 16%] Building CXX object<br>
&gt; taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/TaskBrowser.o Dans le<br>
&gt; fichier inclus à partir de<br>
&gt; /usr/local/include/rtt/scripting/parser-types.hpp:40, à partir de<br>
&gt; /usr/local/include/rtt/scripting/PeerParser.hpp:43, à partir de<br>
&gt; /usr/src/orocos-ocl-1.8.0/taskbrowser/TaskBrowser.cpp:69:<br>
&gt; /usr/local/include/boost/spirit.hpp:18:4: attention : #warning "This header<br>
&gt; is deprecated. Please use: boost/spirit/include/classic.hpp" Linking CXX<br>
&gt; shared library liborocos-taskbrowser-lxrt.so<br>
&gt; [ 16%] Built target orocos-taskbrowser-lxrt<br>
&gt; Scanning dependencies of target orocos-timer-lxrt<br>
&gt; [ 22%] Building CXX object<br>
&gt; timer/CMakeFiles/orocos-timer-lxrt.dir/TimerComponent.o Linking CXX shared<br>
&gt; library liborocos-timer-lxrt.so<br>
&gt; [ 22%] Built target orocos-timer-lxrt<br>
&gt; Scanning dependencies of target helloworld<br>
&gt; [ 27%] Building CXX object<br>
&gt; helloworld/CMakeFiles/helloworld.dir/HelloWorld.o Linking CXX executable<br>
&gt; helloworld<br>
&gt; [ 27%] Built target helloworld<br>
&gt; Scanning dependencies of target orocos-helloworld-lxrt<br>
&gt; [ 33%] Building CXX object<br>
&gt; helloworld/CMakeFiles/orocos-helloworld-lxrt.dir/HelloWorld.o Linking CXX<br>
&gt; shared library liborocos-helloworld-lxrt.so<br>
&gt; [ 33%] Built target orocos-helloworld-lxrt<br>
&gt; Scanning dependencies of target orocos-reporting-lxrt<br>
&gt; [ 38%] Building CXX object<br>
&gt; reporting/CMakeFiles/orocos-reporting-lxrt.dir/command.o [ 44%] Building<br>
&gt; CXX object<br>
&gt; reporting/CMakeFiles/orocos-reporting-lxrt.dir/ConsoleReporting.o [ 50%]<br>
&gt; Building CXX object<br>
&gt; reporting/CMakeFiles/orocos-reporting-lxrt.dir/datasender.o [ 55%] Building<br>
&gt; CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/FileReporting.o [<br>
&gt; 61%] Building CXX object<br>
&gt; reporting/CMakeFiles/orocos-reporting-lxrt.dir/ReportingComponent.o [ 66%]<br>
&gt; Building CXX object reporting/CMakeFiles/orocos-reporting-lxrt.dir/socket.o<br>
&gt; [ 72%] Building CXX object<br>
&gt; reporting/CMakeFiles/orocos-reporting-lxrt.dir/socketmarshaller.o [ 77%]<br>
&gt; Building CXX object<br>
&gt; reporting/CMakeFiles/orocos-reporting-lxrt.dir/TcpReporting.o Linking CXX<br>
&gt; shared library liborocos-reporting-lxrt.so<br>
&gt; [ 77%] Built target orocos-reporting-lxrt<br>
&gt; Scanning dependencies of target orocos-deployment-lxrt<br>
&gt; [ 83%] Building CXX object<br>
&gt; deployment/CMakeFiles/orocos-deployment-lxrt.dir/DeploymentComponent.o [<br>
&gt; 88%] Building CXX object<br>
&gt; deployment/CMakeFiles/orocos-deployment-lxrt.dir/ComponentLoader.o Linking<br>
&gt; CXX shared library liborocos-deployment-lxrt.so<br>
&gt; [ 88%] Built target orocos-deployment-lxrt<br>
&gt; Scanning dependencies of target deployer-lxrt<br>
&gt; [ 94%] Building CXX object bin/CMakeFiles/deployer-lxrt.dir/deployer.o<br>
&gt; [100%] Building CXX object<br>
&gt; bin/CMakeFiles/deployer-lxrt.dir/deployer-funcs.o Linking CXX executable<br>
&gt; deployer-lxrt<br>
&gt; CMakeFiles/deployer-lxrt.dir/deployer-funcs.o: In function<br>
&gt; `OCL::deployerParseCmdLine(int, char**, std::basic_string&lt;char,<br>
&gt; std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;, std::basic_string&lt;char,<br>
&gt; std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;&amp;,<br>
&gt; boost::program_options::variables_map&amp;,<br>
&gt; boost::program_options::options_description*)':<br>
&gt; deployer-funcs.cpp:(.text+0x698): undefined reference to<br>
&gt; `boost::program_options::options_description::m_default_line_length'<br>
&gt; collect2: ld a retourné 1 code d'état d'exécution<br>
&gt; make[2]: *** [bin/deployer-lxrt] Erreur 1<br>
&gt; make[1]: *** [bin/CMakeFiles/deployer-lxrt.dir/all] Erreur 2<br>
&gt; make: *** [all] Erreur 2<br>
&gt;<br>
&gt; I currently have boost version 1.34.1. installed. Do I need the latest<br>
&gt; version 1.38 for it to work?<br>
I get the same error when building OCL with boost 1.38 and with the ubuntu-boost package.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Tinne<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p></body></html>

Hi everyone,I found the

Hi everyone,

I found the culprit. That is because the boost 1.38 doesn't mix with the package installed on ubuntu sypnaptic.
I uninstalled 1.38 and reinstalled the 1.34 from synaptic and everything compiles fine. Tinne try uninstalling and reinstalling the 1.34 from synpatic and it should work. :)

Lesson learned, never keep two copies of any software on your system at least without uninstalling them.

David

Hi everyone,I found the

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">On Friday 20 February 2009 16:59:17 yu [dot] david [..] ... wrote:<br>
&gt; Hi everyone,<br>
&gt;<br>
&gt; I found the culprit. That is because the boost 1.38 doesn't mix with the<br>
&gt; package installed on ubuntu sypnaptic. I uninstalled 1.38 and reinstalled<br>
&gt; the 1.34 from synaptic and everything compiles fine. Tinne try uninstalling<br>
&gt; and reinstalling the 1.34 from synpatic and it should work. :)<br>
Mmm, I already thought that it had to do something with me fixing two boost version. Thanks for figuring this out David.<br>
However, uninstalling and reinstalling is not sufficient to get ocl compiling.<br>
I will have to try to uninstall the boost which I build from trunk. Pity there is no uninstall feature :(<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>&gt; Lesson learned, never keep two copies of any software on your system at<br>
&gt; least without uninstalling them.<br>
I DO want the two versions, I need some functionality from boost 1.38 and some other software does not work yet with the new boost. <br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Tinne<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><BR>
<BR>
<FONT FACE=3D"Arial" SIZE=3D2>Disclaimer: <A HREF= "http://www.kuleuven.be/cwis/email_disclaimer.htm">http://www.kuleuven.be/cwis/email_disclaimer.htm</A> for more information.</FONT>
<BR>
<BR>
</body></html>

Hi Tinne, try ls -l

Hi Tinne,

try ls -l /usr/local/lib/*program_options*
if you have the 1.38 in there you need to remove those files that's what I did and after I uninstalled and reinstalled the 1.34 and i cleaned RTT and OCL and recompiled both of them. Hope it helps.

David

Hi Tinne, try ls -l

Hi David,

> try ls -l /usr/local/lib/*program_options*
> if you have the 1.38 in there you need to remove those files that's what I
> did and after I uninstalled and reinstalled the 1.34 and i cleaned RTT and
> OCL and recompiled both of them. Hope it helps.

I messed around a little bit and I did:
rm -l /usr/local/lib/*program_options*
rm -l /usr/local/include/boost (this was a symbolic link pointing to boost)
sudo aptitude purge libboost-dev libboost-program-options-dev
sudo aptitude install libboost-dev libboost-program-options-dev

then I made a clean build for both RTT and OCL and it worked!

Thanks for the help!

Tinne

Ruben Smits's picture

Problems compiling OCL on Ubuntu Gutsy with RTAI 3.6.2

On Wednesday 18 February 2009 23:15:03 yu [dot] david [..] ... wrote:
> Hi,
>
> I have successfully installed the RTT for target lxrt but it fails when
> Linking CXX executable helloworld
> /usr/src/orocos-ocl-1.8.0/ocl/liborocos-ocl-common-lxrt.so: undefined
> reference to `RTT::OS::StartStopManager::startFunction(boost::function<int
> ()()>)'
>
> Here is the log:
>
> [ 0%] Built target message
> [ 5%] Building CXX object
> ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/ocltoolkit.o [ 11%] Building CXX
> object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/HMIConsoleOutput.o Linking
> CXX shared library liborocos-ocl-common-lxrt.so
> [ 11%] Built target orocos-ocl-common-lxrt
> [ 16%] Building CXX object
> taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/TaskBrowser.o Dans le
> fichier inclus à partir de
> /usr/local/include/rtt/scripting/parser-types.hpp:40, à partir de
> /usr/local/include/rtt/scripting/PeerParser.hpp:43, à partir de
> /usr/src/orocos-ocl-1.8.0/taskbrowser/TaskBrowser.cpp:69:
> /usr/local/include/boost/spirit.hpp:18:4: attention : #warning "This header
> is deprecated. Please use: boost/spirit/include/classic.hpp" Linking CXX
> shared library liborocos-taskbrowser-lxrt.so
> [ 16%] Built target orocos-taskbrowser-lxrt
> [ 22%] Building CXX object
> timer/CMakeFiles/orocos-timer-lxrt.dir/TimerComponent.o Linking CXX shared
> library liborocos-timer-lxrt.so
> [ 22%] Built target orocos-timer-lxrt
> [ 27%] Building CXX object
> helloworld/CMakeFiles/helloworld.dir/HelloWorld.o Linking CXX executable
> helloworld
> /usr/src/orocos-ocl-1.8.0/ocl/liborocos-ocl-common-lxrt.so: undefined
> reference to `RTT::OS::StartStopManager::startFunction(boost::function<int
> ()()>)'

Can you send some more verbose information by using "make VERBOSE=1"

> I did a make check on the RTT build after
> However when i do a make check it fails at the tests.
> Here's the log I got.
> Linking CXX executable task-test
> [100%] Built target task-test
> Start processing tests
> Test project /usr/src/orocos-rtt-1.8.0/build/tests
> Constructing a list of tests
> Done constructing a list of tests
> Changing directory into /usr/src/orocos-rtt-1.8.0/build/tests
> 1/ 8 Testing core-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/core-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
> 2/ 8 Testing task-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/task-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
> 3/ 8 Testing event-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/event-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
> 4/ 8 Testing taskcontext-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/taskcontext-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
> 5/ 8 Testing parser-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/parser-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
> 6/ 8 Testing program-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/program-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
> 7/ 8 Testing state-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/state-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
> 8/ 8 Testing dev-test
> Test command: /usr/src/orocos-rtt-1.8.0/build/tests/dev-test
> -- Process completed
>
> *** Exception executing: Segmentation fault
> ***Exception: SegFault
>
> 0% tests passed, 8 tests failed out of 8
>
> The following tests FAILED:
> 1 - core-test (SEGFAULT)
> 2 - task-test (SEGFAULT)
> 3 - event-test (SEGFAULT)
> 4 - taskcontext-test (SEGFAULT)
> 5 - parser-test (SEGFAULT)
> 6 - program-test (SEGFAULT)
> 7 - state-test (SEGFAULT)
> 8 - dev-test (SEGFAULT)
> Errors while running CTest
>
> Is that normal?

Not really, are you sure that all the required rtai modules are loaded?

Ruben

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

--
Orocos-Users mailing list
Orocos-Users [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users

Hi Ruben, first I'd like to

Hi Ruben, first I'd like to thank you for replying.
Yes you were right
I loaded the modules from RTAI rtai_sem, rtai_lxrt, rtai_hal and all tests passed now. :)

Here is the log with make VERBOSE=1:

cv4508@RDLE00769MDL:/usr/src/orocos-ocl-1.8.0$ sudo make VERBOSE=1
/usr/bin/cmake -H/usr/src/orocos-ocl-1.8.0 -B/usr/src/orocos-ocl-1.8.0 --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /usr/src/orocos-ocl-1.8.0/CMakeFiles 18
make -f CMakeFiles/Makefile2 all
make[1]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
make -f doc/CMakeFiles/message.dir/build.make doc/CMakeFiles/message.dir/build
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
cd /usr/src/orocos-ocl-1.8.0/doc && echo Use:\ 'make\ docapi\ dochtml\ docpdf'\ to\ build\ the\ documentation.
Use: make\ docapi\ dochtml\ docpdf to build the documentation.
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles
[ 0%] Built target message
make -f ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/build.make ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/depend
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
make[2]: Rien à faire pour « ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/depend ».
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
make -f ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/build.make ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/build
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 24
[ 5%] Building CXX object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/ocltoolkit.o
/usr/bin/c++ -DOCL_DLL_EXPORT -O2 -DNDEBUG -fPIC -I/usr/src/orocos-ocl-1.8.0 -I/usr/local/include -I/usr/realtime/include -I/include -Wall -DOROCOS_TARGET=lxrt -Wall -Wall -Wall -Wall -o ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/ocltoolkit.o -c /usr/src/orocos-ocl-1.8.0/ocl/ocltoolkit.cpp
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 25
[ 11%] Building CXX object ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/HMIConsoleOutput.o
/usr/bin/c++ -DOCL_DLL_EXPORT -O2 -DNDEBUG -fPIC -I/usr/src/orocos-ocl-1.8.0 -I/usr/local/include -I/usr/realtime/include -I/include -Wall -DOROCOS_TARGET=lxrt -Wall -Wall -Wall -Wall -o ocl/CMakeFiles/orocos-ocl-common-lxrt.dir/HMIConsoleOutput.o -c /usr/src/orocos-ocl-1.8.0/ocl/HMIConsoleOutput.cpp
Linking CXX shared library liborocos-ocl-common-lxrt.so
cd /usr/src/orocos-ocl-1.8.0/ocl && /usr/bin/cmake -P CMakeFiles/orocos-ocl-common-lxrt.dir/cmake_clean_target.cmake
cd /usr/src/orocos-ocl-1.8.0/ocl && /usr/bin/cmake -E cmake_link_script CMakeFiles/orocos-ocl-common-lxrt.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -O2 -DNDEBUG -shared -Wl,-soname,liborocos-ocl-common-lxrt.so.1.8 -o liborocos-ocl-common-lxrt.so.1.8.0 "CMakeFiles/orocos-ocl-common-lxrt.dir/ocltoolkit.o" "CMakeFiles/orocos-ocl-common-lxrt.dir/HMIConsoleOutput.o" -L/usr/local/lib -lorocos-rtt-lxrt -Wl,-rpath,/usr/local/lib
cd /usr/src/orocos-ocl-1.8.0/ocl && /usr/bin/cmake -E cmake_symlink_library liborocos-ocl-common-lxrt.so.1.8.0 liborocos-ocl-common-lxrt.so.1.8 liborocos-ocl-common-lxrt.so
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 24 25
[ 11%] Built target orocos-ocl-common-lxrt
make -f taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/build.make taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/depend
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
make[2]: Rien à faire pour « taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/depend ».
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
make -f taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/build.make taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/build
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 26
[ 16%] Building CXX object taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/TaskBrowser.o
/usr/bin/c++ -DOCL_DLL_EXPORT -O2 -DNDEBUG -fPIC -I/usr/src/orocos-ocl-1.8.0 -I/usr/local/include -I/usr/realtime/include -I/include -Wall -DOROCOS_TARGET=lxrt -Wall -Wall -Wall -Wall -o taskbrowser/CMakeFiles/orocos-taskbrowser-lxrt.dir/TaskBrowser.o -c /usr/src/orocos-ocl-1.8.0/taskbrowser/TaskBrowser.cpp
Dans le fichier inclus à partir de /usr/local/include/rtt/scripting/parser-types.hpp:40,
à partir de /usr/local/include/rtt/scripting/PeerParser.hpp:43,
à partir de /usr/src/orocos-ocl-1.8.0/taskbrowser/TaskBrowser.cpp:69:
/usr/local/include/boost/spirit.hpp:18:4: attention : #warning "This header is deprecated. Please use: boost/spirit/include/classic.hpp"
Linking CXX shared library liborocos-taskbrowser-lxrt.so
cd /usr/src/orocos-ocl-1.8.0/taskbrowser && /usr/bin/cmake -P CMakeFiles/orocos-taskbrowser-lxrt.dir/cmake_clean_target.cmake
cd /usr/src/orocos-ocl-1.8.0/taskbrowser && /usr/bin/cmake -E cmake_link_script CMakeFiles/orocos-taskbrowser-lxrt.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -O2 -DNDEBUG -shared -Wl,-soname,liborocos-taskbrowser-lxrt.so.1.8 -o liborocos-taskbrowser-lxrt.so.1.8.0 "CMakeFiles/orocos-taskbrowser-lxrt.dir/TaskBrowser.o" -L/usr/local/lib -L/usr/src/orocos-ocl-1.8.0/ocl -lorocos-rtt-lxrt -lncurses -lreadline -lorocos-ocl-common-lxrt -lorocos-rtt-lxrt -Wl,-rpath,/usr/local/lib:/usr/src/orocos-ocl-1.8.0/ocl
cd /usr/src/orocos-ocl-1.8.0/taskbrowser && /usr/bin/cmake -E cmake_symlink_library liborocos-taskbrowser-lxrt.so.1.8.0 liborocos-taskbrowser-lxrt.so.1.8 liborocos-taskbrowser-lxrt.so
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 26
[ 16%] Built target orocos-taskbrowser-lxrt
make -f timer/CMakeFiles/orocos-timer-lxrt.dir/build.make timer/CMakeFiles/orocos-timer-lxrt.dir/depend
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
make[2]: Rien à faire pour « timer/CMakeFiles/orocos-timer-lxrt.dir/depend ».
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
make -f timer/CMakeFiles/orocos-timer-lxrt.dir/build.make timer/CMakeFiles/orocos-timer-lxrt.dir/build
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 27
[ 22%] Building CXX object timer/CMakeFiles/orocos-timer-lxrt.dir/TimerComponent.o
/usr/bin/c++ -DOCL_DLL_EXPORT -O2 -DNDEBUG -fPIC -I/usr/src/orocos-ocl-1.8.0 -I/usr/local/include -I/usr/realtime/include -I/include -Wall -DOROCOS_TARGET=lxrt -Wall -Wall -Wall -Wall -o timer/CMakeFiles/orocos-timer-lxrt.dir/TimerComponent.o -c /usr/src/orocos-ocl-1.8.0/timer/TimerComponent.cpp
Linking CXX shared library liborocos-timer-lxrt.so
cd /usr/src/orocos-ocl-1.8.0/timer && /usr/bin/cmake -P CMakeFiles/orocos-timer-lxrt.dir/cmake_clean_target.cmake
cd /usr/src/orocos-ocl-1.8.0/timer && /usr/bin/cmake -E cmake_link_script CMakeFiles/orocos-timer-lxrt.dir/link.txt --verbose=1
/usr/bin/c++ -fPIC -O2 -DNDEBUG -shared -Wl,-soname,liborocos-timer-lxrt.so.1.8 -o liborocos-timer-lxrt.so.1.8.0 "CMakeFiles/orocos-timer-lxrt.dir/TimerComponent.o" -L/usr/local/lib -lorocos-rtt-lxrt -Wl,-rpath,/usr/local/lib
cd /usr/src/orocos-ocl-1.8.0/timer && /usr/bin/cmake -E cmake_symlink_library liborocos-timer-lxrt.so.1.8.0 liborocos-timer-lxrt.so.1.8 liborocos-timer-lxrt.so
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 27
[ 22%] Built target orocos-timer-lxrt
make -f helloworld/CMakeFiles/helloworld.dir/build.make helloworld/CMakeFiles/helloworld.dir/depend
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
make[2]: Rien à faire pour « helloworld/CMakeFiles/helloworld.dir/depend ».
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
make -f helloworld/CMakeFiles/helloworld.dir/build.make helloworld/CMakeFiles/helloworld.dir/build
make[2]: entrant dans le répertoire « /usr/src/orocos-ocl-1.8.0 »
/usr/bin/cmake -E cmake_progress_report /usr/src/orocos-ocl-1.8.0/CMakeFiles 28
[ 27%] Building CXX object helloworld/CMakeFiles/helloworld.dir/HelloWorld.o
/usr/bin/c++ -O2 -DNDEBUG -I/usr/src/orocos-ocl-1.8.0 -I/usr/local/include -I/usr/realtime/include -I/include -Wall -DOROCOS_TARGET=lxrt -Wall -Wall -Wall -Wall -o helloworld/CMakeFiles/helloworld.dir/HelloWorld.o -c /usr/src/orocos-ocl-1.8.0/helloworld/HelloWorld.cpp
Linking CXX executable helloworld
cd /usr/src/orocos-ocl-1.8.0/helloworld && /usr/bin/cmake -P CMakeFiles/helloworld.dir/cmake_clean_target.cmake
cd /usr/src/orocos-ocl-1.8.0/helloworld && /usr/bin/c++ -O2 -DNDEBUG -fPIC "CMakeFiles/helloworld.dir/HelloWorld.o" -o helloworld -rdynamic -L/usr/local/lib -L/usr/src/orocos-ocl-1.8.0/taskbrowser -L/usr/src/orocos-ocl-1.8.0/ocl -lorocos-rtt-lxrt -lorocos-taskbrowser-lxrt -lncurses -lreadline -lorocos-ocl-common-lxrt -lorocos-rtt-lxrt -Wl,-rpath,/usr/local/lib:/usr/src/orocos-ocl-1.8.0/taskbrowser:/usr/src/orocos-ocl-1.8.0/ocl
/usr/src/orocos-ocl-1.8.0/ocl/liborocos-ocl-common-lxrt.so: undefined reference to `RTT::OS::StartStopManager::startFunction(boost::function)'
collect2: ld a retourné 1 code d'état d'exécution
make[2]: *** [helloworld/helloworld] Erreur 1
make[2]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
make[1]: *** [helloworld/CMakeFiles/helloworld.dir/all] Erreur 2
make[1]: quittant le répertoire « /usr/src/orocos-ocl-1.8.0 »
make: *** [all] Erreur 2