I have a recent, fresh installation of ROOT (in /usr/bin/src/root/root_install/bin/root/. I’m running a fresh install of the latest Debian, and I installed all required and optional dependencies listed here: Dependencies - ROOT. Then, I followed (verbatim) the build-from-source instructions given here: Installing ROOT - ROOT… without issue.
I can confirm that FFTW3 was successfully installed, and functional. Moreover, root-config --has-fftw3 returns “yes”.
I’m using some (unfortunately, largely undocumented) ROOT-based software which uses TVirtualFFT. When I try to run this software (or, really, any code which uses ROOT’s FFTW facilities), I get the errors:
Error in <TVirtualFFT::FFT>: plugin not found
Error in <TVirtualFFT::SineCosine>: plugin not found
Thanks for the suggestion!-- these seem to work fine. I’m not quite sure what’s going on, then, with the code I’m working with ([1], [2]). It has all of the necessary includes, and otherwise seems to use TVirtualFFT in the same manner as the examples (and, as I understand it, works fine for others also running a fresh install of ROOT and Debian, and who installed ROOT and this software using the very same steps I did).
// ...
#include "TApplication.h"
int main(int argc, char** argv) {
TApplication a("a", 0, 0); // just to make sure that the autoloading of ROOT libraries works
// ...
Here’s the output (which looks as expected, I believe):
------------------------------------------------------------------
| Welcome to ROOT 6.24/06 https://root.cern |
| (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
| Built for linuxx8664gcc on Oct 11 2021, 15:41:00 |
| From heads/latest-stable@v6-24-06-4-g7c26799d78 |
| With |
| Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
------------------------------------------------------------------
root [0]
Processing main.c...
Error in <TApplication::TApplication>: only one instance of TApplication allowed
------------------------------------------------------------------
| Welcome to ROOT 6.24/06 https://root.cern |
| (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
| Built for linuxx8664gcc on Oct 11 2021, 15:41:00 |
| From heads/latest-stable@v6-24-06-4-g7c26799d78 |
| With |
| Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
------------------------------------------------------------------
root [0]
A “TApplication” is only needed in standalone applications.
When you use “root” to process a macro, you should not add it.
I do not think “root” is able to process macros with “int main(int argc, char** argv)”.
Actually, it is better not to use the name “main” at all ("root" already runs its own “main” routine).