On 16.01.12 21:03:20, J Decker wrote:
> On Mon, Jan 16, 2012 at 10:21 AM, John Drescher <dresche...@gmail.com> wrote:
> > On Mon, Jan 16, 2012 at 1:15 PM, J Decker <d3c...@gmail.com> wrote:
> >> On Mon, Jan 16, 2012 at 10:08 AM, Rolf Eike Beer <e...@sf-mail.de> wrote:
> >>> J Decker wrote:
> >>>> I just use
> >>>> include_directories( ... )
> >>>
> >>> This is right.
> >>>
> >>>> LINK_DIRECTORIES( ...} )
> >>>
> >>> This is almost surely wrong. LINK_DIRECTORIES is only needed for very 
> >>> seldom
> >>> special cases and only causes headache in all other cases.
> >>
> >> oh, what's the preferred method to specify the directory where the
> >> library is then?
> >>
> >
> > I believe the full path on the target_link_libraries.
> 
> I think the problem with that is if built with gcc, then the full path
> to the library is encoded and you can't load the library from the
> library path, but only from where it was specified.

Thats not correct. Runtime loading of libraries depends on the runtime linker
used, which is ld on Linux usually. And that one finds libraries by
checking its ld.so.conf, the LD_LIBRARY_PATH and a possibly-existing
RPATH/RUNPATH setting in the executable. On Windows the runtime-linker
looks through the PATH variable, in the directory where the executable
is and at a few system-places.

What you might refer to is CMake's support for RPATH/RUNPATH on Linux,
but this can be turned off, tuned so the path is relative to the
executable and the linker simply ignores that if it cannot find a
library at the specified place and falls back to the other two options.

Andreas

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to