Re: Help compiling pureVST

Dan Wilcox <[email protected]>
Newsgroups gmane.comp.multimedia.puredata.general
Message-ID <[email protected]>
Did you build desktop or on that same dir? If so, you need to clean it as it doesn't use multiple instances.

enohp ym morf tnes
-----------

Dan Wilcox

danomatika.com

robotcowboy.com

On May 31, 2025, at 4:16 PM, Alexandros Drymonitis <[email protected]> wrote:



On 5/31/25 14:50, Miller Puckette
wrote:

I've been
trying to figure out how that could happen without success. libpd
should be defining the missing symbol

(s_signal). This is a shot int he dark but can you try "nm
libpd.a" from the .../pd/libpd directory? I get this:

sp@bang:~/pd/libpd$ nm libpd.a |grep s_sig

00000000000000a0 D s_signal

I get the following:

```

U s_signal

U s_signal

U s_signal

U s_signal

```

so I guess the symbol is missing. I tried deleting everything in
the libpd directory (apart from the Makefile, README and the
test_libpd directory) and to re-build it with

`make MORECFLAGS=-DVST_CLEANSER MORESRC=[...path-to...]/PureVST/source/vst_cleanser.c`

but the result is the same

... so libpd.a is defining the (apparently missing) symbol. If
yours is missing, then somehow the libpd.a build

missed including vst_cleanser.c from the pureVST source. But if
yours is present like mine is (which I expect you

to find) then something about the linker command is funny. You
could then run "cmake --build . --verbose" so that

we could both look at how the linker is getting invoked on our
respective systems.

Meanwihle... in trying to recompile everything from scratch I now
get a problem further down the line (a segfault trying to run

Steinberg's 'validator'.) I had to start all over and add
-DSMTG_RUN_VST_VALIDATOR=FALSE to the cmake command -

then, unexpectedly, I was able to load the plugin under ardour and
all seemed fine. But something seems to be pretty

fragile here :)

Miller

On 5/30/25 3:16 PM, Alexandros Drymonitis wrote:

Replying to list. I went a bit further,
but got an error with `cmake --build .` after the selftests were
run successfully. Here's the error:

```

[ 91%] Built target validator

[ 91%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/test-patch.pd
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd

[ 91%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png

[ 92%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png

[ 92%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/background.png

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/background.png
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/background.png

[ 93%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/onoff_button.png
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png

[ 93%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/pdeditor.uidesc
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc

[ 93%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/slider_background.png
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png

[ 93%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle.png
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png

[ 94%] Generating
VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png

[SMTG] Copied
/home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle_2.0x.png
to
/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png

[ 94%] Building CXX object
CMakeFiles/PureVST.dir/source/pdprocessor.cpp.o

[ 94%] Building CXX object
CMakeFiles/PureVST.dir/source/pdcontroller.cpp.o

[ 95%] Building CXX object
CMakeFiles/PureVST.dir/source/pdentry.cpp.o

[ 95%] Building CXX object
CMakeFiles/PureVST.dir/home/alex/Applications/vst3sdk/public.sdk/source/main/linuxmain.cpp.o

[ 95%] Linking CXX shared module
VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so

dlopen failed.

/home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so:
undefined symbol: s_signalgmake[2]: ***
[CMakeFiles/PureVST.dir/build.make:207:
VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so]
Error 1

gmake[2]: *** Deleting file
'VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so'

gmake[1]: *** [CMakeFiles/Makefile2:389:
CMakeFiles/PureVST.dir/all] Error 2

gmake: *** [Makefile:91: all] Error 2

```

On 5/30/25 12:30, Miller Puckette wrote:

I think you're almost there but now I'm
goint to revise the README to be more explicit. From the
(empty) build directory

I type this:

SRC=[...path-to...]/purevst

cmake -DCMAKE_BUILD_TYPE=Release
-DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE

-DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC

(all on one line) and then this:

cmake --build .

It could be that as you looked at the README you saw the
'cmake -DCMAKE_BUILD_TYPE=Release...' command broken into two
lines -

I should find a way to prevent that from happening :)

Miller

On 5/30/25 9:57 AM, Alexandros Drymonitis wrote:

OK, I downloaded PureVST (sorry, had
to figure this out earlier) and unpacked it. I created a
build directory and changed to that. I also corrected the
paths to the VST3 SDK and Pd's source (well, Pd's directory
that includes the src/ directory, not the actual src/
directory; that's what I got I should do from the
CMakeLists.txt file) and I run:

`cmake -DCMAKE_BUILD_TYPE=Release`

but I got the following error:

```

CMake Warning:

No source or binary directory provided. Both will be
assumed to be the

same as the current working directory, but note that this
warning will

become a fatal error in future CMake releases.

CMake Error: The source directory
"/home/alex/Applications/puredata/PureVST-0.5/build" does
not appear to contain CMakeLists.txt.

Specify --help for usage, or press the help button on the
CMake GUI.

```

Perhaps something is missing in the command, like a double
dot? I know nothing about CMake, so this could be rather
trivial...

On 5/30/25 10:22, Miller Puckette via Pd-list wrote:

Hmm... the directions could have
been clearer, sorry....

vst_cleanser.c is in the pureVTS source, not in the Pd
source. If you've downloaded and unpacked the PureVST
source tarball it should be just
"purevst/source/vst_cleanser.c". And yes, no trailing
period (I think my markdown-to-html converter remove the
space I had put between the filename and the period).

and yes, 'wherever the sources landed" refers to the
pureVST source (currently
https://msp.ucsd.edu/tools/purevst/PureVST-0.5.src.tgz )
whic need dwonloading and unpacking before even making
this version of libpd.

cheers

Miller

On 5/30/25 8:39 AM, Alexandros Drymonitis wrote:

I'm trying to compile pureVST from source on Debian 12.
I built the VST SDK and following pureVST's README, I've
gone up to the following step `make
MORECFLAGS=-DVST_CLEANSER` insinde the libpd directory.

I don't quite understand the following steps. Right
after this, the README reads that I should type
`MORESRC=../../work/vst/purevst/source/vst_cleanser.c.`

Being inside the libpd directory, where will the two
parent directories lead me, since the path starts with
../../? Also, where is this `work` directory supposed to
be? Or `vst` and `purevst`? Are these directories Miller
created in his system?

I did a `find . -name vst_cleanser.c` from my home
directory and found nothing (BTW, is the dot at the end
supposed to be there?).

Then the instructions follow like this:

```

Then using the PureVST source tree, consult the
CMakeLists.txt file and correct the path settings for
the VST SDK and for the Pd source. Then make an empty
build directory, and using a shell or terminal window,
change directory to the build directory and try to get
these to work in sequence:

|SRC=~/work/vst/purevst|

[… or wherever the sources landed]

|cmake -DCMAKE_BUILD_TYPE=Release
-DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE
-DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME
$SRC|

|cmake --build .|

```

It mentions "or wherever the sources landed". Which
sources? After building libpd? And in which directory
should all the cmake command be executed?

---

[email protected] - the Pure Data mailinglist

https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/G6WKC35RKLRYGKG6SBU7XNVVJJMAKKZO/__;!!Mih3wA!DFen_RjYHJNb45mR5Hyg6bFkcnp_5FiD-L8x3J77DDNf8kSeESnTcAvpifvoHQuLXlMtgG3c4g$

To unsubscribe send an email to
[email protected] mailing list

UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45mR5Hyg6bFkcnp_5FiD-L8x3J77DDNf8kSeESnTcAvpifvoHQuLXlNkw1GM2g$

---

[email protected] - the Pure Data mailinglist

https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/TNRUNARSDQYEJRVRR7YXBKGVMEWZ5LSK/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYm61iPow$

To unsubscribe send an email to [email protected]
mailing list

UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYH7gGC2w$

---

[email protected] - the Pure Data mailinglist

https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/TIRTMUGDE6MPPDG5JDZGATYQXCP5CXVB/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYL9pcD7g$

To unsubscribe send an email to [email protected]
mailing list

UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYH7gGC2w$

---

[email protected] - the Pure Data mailinglist

https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/II7K4ZFPH6QF4PYJ5MZJJ6PUSWZYBN62/__;!!Mih3wA!H13gOLNhjW0b3yIv3Mv32sdTdhORLrti5ptp8icO2d2-axGPFy0ONnZkiXgjTBRwNGWSwTaEgw$

To unsubscribe send an email to [email protected]
mailing list

UNSUBSCRIBE and account-management ->
https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yIv3Mv32sdTdhORLrti5ptp8icO2d2-axGPFy0ONnZkiXgjTBRwNGXCIV33JQ$

---
[email protected] - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/[email protected]/message/ONACOAA2TPVCFNFLSXB6TSZA7QH5KZE6/

To unsubscribe send an email to [email protected] mailing list
UNSUBSCRIBE and account-management -> https://lists.iem.at/

---
[email protected] - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/[email protected]/message/GULRESQ4SGXXOJ5AGZAK64T74QCFWWWM/

To unsubscribe send an email to [email protected] mailing list
UNSUBSCRIBE and account-management -> https://lists.iem.at/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.