<div dir="ltr">So ...<div><br></div><div>You have to install the .so from the vendor's library. The best place to do this is IMO from within your library's CMake code.</div><div><br></div><div>NEVER hardcode full path within cmake. CMake has a bunch of variables to point to various places in the CMake project (e.g. CMAKE_CURRENT_SOURCE_DIR, CMAKE_PROJECT_DIR, ...)</div>
<div><br></div><div>As to your problem: you declare the method as inline but never give its definition in the header file. Just remove the "inline" keyword.</div><div><br></div><div>Finally, I can only recommend that you follow Rock's guidelines as to package naming, library naming and repository naming. Consistency always helps.</div>
<div> <a href="http://rock-robotics.org/documentation/packages/package_structure.html">http://rock-robotics.org/documentation/packages/package_structure.html</a></div><div> <a href="http://rock.opendfki.de/wiki/WikiStart/Standards/RG4">http://rock.opendfki.de/wiki/WikiStart/Standards/RG4</a></div>
<div>(they are all accessible from <a href="http://rock.opendfki.de/wiki/WikiStart/Standards/">http://rock.opendfki.de/wiki/WikiStart/Standards/</a>)</div><div><br></div><div><div>Sylvain</div></div><div><br></div><div>PS: your use of static variables in your class as well as of hardcoded project-specific values looks very suspicious to me :P</div>
<div>PPS: don't commit backup files (files ending with ~) in git</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 17, 2014 at 4:00 PM, Eduardo Elael <span dir="ltr"><<a href="mailto:eduardo.elael@tenkel.com" target="_blank">eduardo.elael@tenkel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Now it's up to date. I haven't commited the changes, sorry.<br></div>It's all there (on github) now.<div class="gmail_extra">
<br><div>Eduardo Elael<br><br></div>Coppetec/LEAD<div><div class="h5"><br><br><div class="gmail_quote">
On Thu, Apr 17, 2014 at 2:47 AM, Sylvain Joyeux <span dir="ltr"><<a href="mailto:bir.sylvain@gmail.com" target="_blank">bir.sylvain@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi Eduardo<div><br></div><div><div>Your ethernet driver library is empty (at least on github), so where is the EthernetDrivers::GPIOin_Driver class supposed to come from ? Is that coming with the device's library ? If it is the case, consider creating a custom handler in your autoproj package set that installs it and generates a pkg-config file. You can have a look for instance at how the drivers/aria package is handled in remotes/rock/libs.autobuild.</div>
</div><div><br></div><div>I would also recommend that you follow Rock's guidelines on naming ... consistency usually helps</div><div> <a href="http://rock-robotics.org/stable/documentation/packages/package_structure.html" target="_blank">http://rock-robotics.org/stable/documentation/packages/package_structure.html</a></div>
<div> <a href="http://rock.opendfki.de/wiki/WikiStart/Standards/RG4" target="_blank">http://rock.opendfki.de/wiki/WikiStart/Standards/RG4</a></div><div><br></div><div>Sylvain</div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote"><div><div>
On Wed, Apr 16, 2014 at 7:43 PM, Eduardo Elael <span dir="ltr"><<a href="mailto:eduardo.elael@tenkel.com" target="_blank">eduardo.elael@tenkel.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><div>
<div dir="ltr"><div><div><div><div><div>Hello,<br><br></div>I'm using an ethernet based device which has it's own library ( a header ".h" and a external library ".so" ). When I created my rock library I added two lines to my Cmakelist: "HEADERS the_lib.h" and "LIBS /the/path/the_lib86x64.so". Doing that it compiled fine (through amake).<br>
<br></div>Then, when I try to create a rock-component using this rock-library the amake returns errors showing "undefined reference"'s to functions implemented in the "the_lib86x64.so".<br><br></div>
So I tried copying the "the_lib86x64.so" to Rock/install/lib, I don't know if it's the correct way, but now I get the error:<br><br>"Linking CXX executable orogen_default_inductive__Task<br> tasks/libinductive-tasks-gnulinux.so: undefined reference to `EthernetDrivers::GPIOin_Driver::read(bool*)' "<br>
</div><br>Where "inductive" is my component name, and "EthernetDrivers::GPIOin_Driver::read(bool*)" is a method from a class defined in my rock-library.<br><br></div>The actual state of my code:<br><div>
<br>rock-library:<br><a href="https://github.com/OpenLEAD/EthernetDriver" target="_blank">https://github.com/OpenLEAD/EthernetDriver</a><br><br>rock-component:<br><a href="https://github.com/OpenLEAD/InductiveS" target="_blank">https://github.com/OpenLEAD/InductiveS</a><br>
<br></div><div>Thanks in advance,<br></div><div>Eduardo Elael<br><br></div><div>Coppetec/LEAD<br></div></div>
<br></div></div>_______________________________________________<br>
Rock-dev mailing list<br>
<a href="mailto:Rock-dev@dfki.de" target="_blank">Rock-dev@dfki.de</a><br>
<a href="http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev" target="_blank">http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>