Hi Ankur,<div><br></div><div>May be you&#39;re just missing -devel or -dev pacakges on your system? They usually provide a symlink from .so to .so.X.Y to allow ld or gcc find the correct library.</div><div><br></div><div>Or do you really have multiple libraries versions installed simultaneously, each with headers?<br>
<br><div class="gmail_quote">On Thu, Mar 10, 2011 at 2:25 AM, Andreas Pakulat <span dir="ltr">&lt;<a href="mailto:apaku@gmx.de">apaku@gmx.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 09.03.11 21:36:25, Ankur Handa wrote:<br>
&gt; I&#39;m using find_library to find a library in a given directory but it has<br>
&gt; many different versions of this library listed as libcxcore.so,<br>
&gt; libcxcore.so.2.1 and libcxcore.so.2.1.0  I wrote a very simple cmake file<br>
&gt;<br>
&gt; cmake_minimum_required(VERSION 2.8)<br>
&gt;<br>
&gt; find_library(OpenCV_LIBRARY_RELEASE NAMES &quot;cxcore&quot; PATHS<br>
&gt; &quot;/homes/ahanda/openCV2.1/OpenCV-2.1.0/opencvinstall/lib&quot; NO_DEFAULT_PATH)<br>
&gt;<br>
&gt; if ( OpenCV_LIBRARY_RELEASE)<br>
&gt;         message(&quot;LIBRARY FOUND = &quot; ${OpenCV_LIBRARY_RELEASE})<br>
&gt; endif()<br>
&gt;<br>
&gt; if ( NOT OpenCV_LIBRARY_RELEASE)<br>
&gt;         message(&quot;LIBRARY NOT FOUND&quot;)<br>
&gt; endif()<br>
&gt;<br>
&gt; It works fine if I search for &quot;cxcore&quot; for which it returns me libcxcore.so<br>
&gt; and the OpenCV_LIBRARY_RELEASE<br>
&gt; as /homes/ahanda/openCV2.1/OpenCV-2.1.0/opencvinstall/lib/libcxcore.so<br>
&gt;<br>
&gt; However if I try to search for cxcore21 or cxcore210 or even<br>
&gt; libcxcore.so.2.1.0 it won&#39;t return me anything and I&#39;d always see LIBRARY<br>
&gt; NOT FOUND being printed.<br>
&gt;<br>
&gt; Could anyone please let me know how to really search for libcxcore.so.2.1.0<br>
<br>
</div>You can&#39;t I think. Thats simply not how cmake or the linker work. The<br>
linker during the compilation phase will always link against<br>
lib&lt;name&gt;.so. So you need to make sure that your lib&lt;name&gt;.so is from<br>
cxcore 2.1.0 and search simply for cxcore.<br>
<br>
If you want to make sure that a user has at least cxcore 2.1.0 installed<br>
you&#39;ll need to use other means to find out the version number of the<br>
installed library. Usually such libs provide a header with version<br>
numbers which you can read. Or it may have a pkgconfig file for which<br>
cmake has extra macros to read them. In worst case you could try to grep<br>
for the version number in the output of strings running over the found<br>
library.<br>
<br>
Andreas<br>
<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
</blockquote></div><br></div>