I think your reply means that I am stuck…. my project must be a shared object 
(it’s an extension to PostgreSQL that is dynamically loaded as needed).

Is that correct?  Is there anything I can do to help build shared libraries?

Thanks.

             — Korry

> On Jan 15, 2019, at 12:48 PM, Owen O'Malley <[email protected]> wrote:
> 
> The current c++ build forces static libraries, based on my previous painful 
> experience with shared libraries on distributed systems. That said, going 
> forward the automated configuration tools are much better. I'd we want to 
> enable shared libraries, we can do that. 
> 
> .. Owen
> 
> On Jan 15, 2019, at 10:10, Korry Douglas <[email protected] <mailto:[email protected]>> 
> wrote:
> 
>> Thanks for the quick reply, Zhiyuan.
>> 
>> I’ve tried your suggestion (that was how I expected the process to work), 
>> but I get an error when I do that:
>> 
>>   /usr/local/lib/libprotobuf.a(arena.cc.o): relocation R_X86_64_TPOFF32 
>> against symbol `_ZN6google8protobuf8internal9ArenaImpl13thread_cache_E' can 
>> not be used when making a shared object; recompile with -fPIC
>> 
>> So the link fails. (I *do* compile my .cc files with -fPIC.)
>> 
>> 
>>              — Korry
>> 
>>> On Jan 15, 2019, at 10:02 AM, Zhiyuan Dong <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> This my personal $0.02. 
>>> 
>>> I have been able to use the default settings there building various 
>>> supporting *.a files in linux Ubuntu and CentOS. Then I build C++ functions 
>>> into my own written *.so file which is then linked to various *.a files... 
>>> And the *.so that calls the orc functionalities in C++ works fine.
>>> 
>>> Hope this helps a little bit.
>>> 
>>> Zhiyuan
>>> 
>>> On Tue, Jan 15, 2019 at 8:40 AM Korry Douglas <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> As an alternative - is there somewhere I can find binary packages for 
>>> liborc (RPMs) ?
>>> 
>>>           — Korry
>>> 
>>> > On Jan 14, 2019, at 7:17 PM, Korry Douglas <[email protected] 
>>> > <mailto:[email protected]>> wrote:
>>> > 
>>> > Hi all,  I am trying to build a shared library that links to liborc (the 
>>> > C++ API).  However, the Makefiles are all set up to build .a files 
>>> > instead of .so files.
>>> > 
>>> > I’ve figured out how to modify the CMakeLists.txt file to add the -fPIC 
>>> > CFLAG (although I don’t really like editing that file by hand).  However, 
>>> > there are many related libraries that seem to be downloaded from various 
>>> > URL’s  and those libraries are not compiled with -fPIC.
>>> > 
>>> > Any suggestions?  Thanks in advance.
>>> > 
>>> >            — Korry
>>> 
>>> 
>>> 
>>> -- 
>>> Zhiyuan Dong, Ph.D.
>> 

Reply via email to