If you're building libpd via a custom Makefile, see the flags used in the libpd Makefile. Also, if you're using the libpd Makefile, double-check that HAVE_LIBPD is being defined.

On Thu, Feb 14, 2019 at 2:30 PM Joseph Larralde <joseph.larralde@gmail.com> wrote:
Thank you Dan for your explanation.
And thanks everyone for helping.

Yesterday I tried to recompile the node addon to use it locally but got into other trouble.
I first recompiled libpd with MULTI=false after Christof's suggestion (to enable the PDINSTANCE flag) but node-gyp was the first wall I was still hitting.
It seems there are still some slight updates I need to do in the addon's code (I got some char * vs const char * error).
Your 3rd point makes obvious sense and I'll try this in the first place today.

Joseph

Le 14/02/19 à 13:07, Dan Wilcox a écrit :
A few things:

1. libpd does not use any paths, settings, audio/midi backends, etc from desktop pd. It is only the core and less than "pd without the gui." This is by design as it makes no assumptions about the environment since it can be running in all manner of places. This means it will only search paths relative to an opened patch and those added explicitly by llibpd_add_to_search_path().

2. Loading an external, whether it was compiled against 0.47 or 0.49 should work as, largely, the pd API has not changed that much.

3. libpd needs to be built with -DHAVE_LIBDL in order to be able to load separate, precompiled externals.

4. Some environments do *not* allow loading dynamic libraries for legal/security reasons, ie. iOS. I don't this is the problem, but it's good to know...

I image you're issue is more to do with 3.

Message: 1
Date: Wed, 13 Feb 2019 15:04:19 +0100
From: Joseph Larralde <joseph.larralde@gmail.com>
To: Giulio Moro <giuliomoro@yahoo.it>, Lucas Cordiviola
        <lucarda27@hotmail.com>, pd-dev <pd-dev@lists.iem.at>
Subject: Re: [PD-dev] libpd search paths
Message-ID: <2354c1c4-e6db-9143-1402-76dcd37b43a8@gmail.com>
Content-Type: text/plain; charset="utf-8"; Format="flowed"

Mmmh you might have found the clue ...
Actually I built the externals against pd version 0.49-0 and it makes
sense that they load properly with the same version.
node-libpd comes with an arm libpd binary which seems to come from an
older version of pd (added 1 year ago).
I can already tell that it's not an architecture issue because
everything is working on my pi : the addon is loading and running
abstractions when used in a node program, and pd is loading and running
my externals.
Only loading my externals from node-libpd doesn't work.
Still trying to get a local version of node-libpd to work ... then I'll
replace the libpd.so with one that I'll build from the latest version.
I can't see another explanation.
Do you know something about incompatibilities between different versions
of pd ?
The libpd.so used by the addon is probably not older than 0.47


--
Dan Wilcox



--
Dan Wilcox
@danomatika
danomatika.com
robotcowboy.com