[ 
https://issues.apache.org/jira/browse/THRIFT-4412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16284079#comment-16284079
 ] 

Mario Emmenlauer commented on THRIFT-4412:
------------------------------------------

cmake will by default prefer to use the full path to libraries. I understand 
that the reason is to avoid exactly the kind of problem I am facing. See for 
example 
https://cmake.org/cmake/help/v3.3/command/target_link_libraries.html#command:target_link_libraries
 and https://cmake.org/cmake/help/v3.3/policy/CMP0060.html. There are certain 
exceptions from this rule, but only in rare cases (i.e. for system libraries on 
some platforms). This generally works well and I've never had trouble with it, 
except for thrift on certain older Linux distrivutions. Its beyond my 
understanding why for thrift, cmake behaves differently. But I think its 
specific to thrift that the behavior is different (that libraries are not 
linked with full path), and I've not seen this elsewhere.

In any case its not a huge problem so we can close it as "too much effort to 
solve, and only affects rare cases". 

> thrift cmake does not use absolute library path, linking system libraries
> -------------------------------------------------------------------------
>
>                 Key: THRIFT-4412
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4412
>             Project: Thrift
>          Issue Type: Question
>          Components: Build Process
>    Affects Versions: 0.10.0, 0.11.0
>            Reporter: Mario Emmenlauer
>            Assignee: James E. King, III
>            Priority: Minor
>
> I build thrift using cmake on Linux. It works generally very good on many 
> platforms (I've tested Linux, Windows and MacOSX extensively). But one issue 
> is plaguing me. I have my own custom boost libraries, libevent and others. I 
> set {{CMAKE_PREFIX_PATH}} to their install directory. This generally also 
> works well, and cmake finds the libraries. However in the final Makefile, the 
> linker command uses {{-lxxx}} for library {{xxx}} instead of the usual cmake 
> absolute path {{/a/b/c/libxxx.so}}. This is a problem because {{ld}} suddenly 
> prefers the system libraries over my custom builds. This in turn breaks the 
> build for me.
> I do not have this problem with any other cmake builds. And I tried various 
> workarounds to force cmake to use the absolute path, but failed. Did somebody 
> maybe add this on purpose?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to