<div dir="ltr">wow, it just hit me... if you just rename the folder to timbreIDlib, that inconvenience I mentioned is gone... no need for slash declarations! Though I think the other option is more elegant :) </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em sáb, 3 de ago de 2019 às 10:09, William Brent <<a href="mailto:william.brent@gmail.com">william.brent@gmail.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Thanks for all the thorough replies! I'll try working this in for the next update.<div dir="auto"><br></div><div dir="auto"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 2, 2019, 12:30 PM Christof Ressi <<a href="mailto:christof.ressi@gmx.at" target="_blank">christof.ressi@gmx.at</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">right, so William could declare only "setup" with __attribute__((visibility("default"))) and in your makefile:<br>
<br>
ifeq ($(make-lib-executable),yes)<br>
  ldflags := -fvisibility=hidden<br>
endif<br>
<br>
Note that this doesn't work on Windows because MinGW ignores visibility attributes. But there's a solution:<br>
<br>
On MinGW, GCC exports all non-static symbols unless at least one symbol is declared with __declspec(dllexport).<br>
<br>
For Windows, simply declare the library's "setup" function with __declspec(dllexport).<br>
"make-lib-executable=yes" -> only the "setup" function is exported.<br>
"make-lib-executable=no" -> the file containing the "setup" function won't be compiled, so all other non-static symbols are exported (as usual).<br>
<br>
Christof<br>
<br>
<br>
> Gesendet: Freitag, 02. August 2019 um 17:34 Uhr<br>
> Von: "katja" <<a href="mailto:katjavetter@gmail.com" rel="noreferrer" target="_blank">katjavetter@gmail.com</a>><br>
> An: Pd-List <<a href="mailto:pd-list@lists.iem.at" rel="noreferrer" target="_blank">pd-list@lists.iem.at</a>><br>
> Betreff: Re: [PD] [PD-announce] timbreID 0.8.1<br>
><br>
> On 8/2/19, Christof Ressi <<a href="mailto:christof.ressi@gmx.at" rel="noreferrer" target="_blank">christof.ressi@gmx.at</a>> wrote:<br>
> > ah, for this to work you'd have to make sure that "timbreID_setup" is not<br>
> > exported... pd-lib-builder exports all non-static functions by default...<br>
><br>
> ... because gcc exports all non-static functions by default. No need<br>
> to hack Makefile.pdlibbuilder, a library makefile can overrule the<br>
> default with:<br>
><br>
> ldflags := -fvisibility=hidden<br>
><br>
><br>
><br>
> _______________________________________________<br>
> <a href="mailto:Pd-list@lists.iem.at" rel="noreferrer" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
> UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer noreferrer" target="_blank">https://lists.puredata.info/listinfo/pd-list</a><br>
><br>
</blockquote></div>
_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/listinfo/pd-list</a><br>
</blockquote></div>