Hello,
Last night I recompiled the GCC replacing it with a little bit older
version (gcc-4.5-20100121)
and the plugin still can not be loaded, but with a different error:
cc1plus: error: Cannot load plugin ../libimo/libimo.so
../libimo/libimo.so: undefined symbol: _ZN11NodeFactory10CreateNodeEN4BEEV4KindERKNS0_7ASTNodeES4_RKSt6vectorIS2_SaIS2_EE
make: *** [default] Error 1
Now I have set the LD_LIBRARY_PATH to point to the directory my newly
installed libstdc++ is located (thank you for your hint!), but the
output above remains unchanged.
Would you suggest that I try to install again the newest GCC version
(for which I got a less cryptic error) or is there some workaround for
the current error?
After I would have reinstalled GCC, will I have to set the
LD_LIBRARY_PATH each time I try to link the plugin? Or is there a
long-term fix during the GCC compilation process to avoid these errors?
Best regards,
Tina
On 02/13/2010 02:51 AM, Ian Lance Taylor wrote:
Hristina Fidanoska<fidanconscious@xxxxxxxxxxxxxx> writes:
For the use of a plugin in our project, I have installed the latest
GCC version (gcc-4.5-20100211)
and I configured it using the options:
--enable-languages=c,c++ --enable-plugin --prefix=/opt/<plugin>
Now after compiling the plugin, I get an error when linking:
cc1plus: error: Cannot load plugin ../libimo/libimo.so
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ../libimo/libimo.so)
make: *** [default] Error 1
Browsing threads for similar problems, I read that a quick fix would
be to set the LD_LIBRARY_PATH to point to the directory where
libstdc++ is located, in my case
LD_LIBRARY_PATH=/usr/lib/libstdc++.so.6.0.13
LD_LIBRARY_PATH=/usr/lib/libstdc++.so.6
LD_LIBRARY_PATH must include the name of a directory, not the name of
a file. That directory will be searched first for shared libraries.
In your case you want to set it to the directory where the newly built
libstdc++.so was installed. This will be somewhere under the --prefix
option you used when you configured gcc.
Ian