> > I am pleased to see that the 12.5 compiler fixes the 12.4 compiler bug >> that was nobbling me earlier. The test harness and benchmark work ok. >> However I must be building the library wrong because although cryptopp >> builds ok, I cannot get my product to build that uses it. All the >> references to the crypto library remain unsatisfied. The linker says that >> the symbols I am referencing cannot be found yet when I use nm -C I see >> that they are there... >> > > I believe Crypto++ also uses -template=no%extdef. The option has been in > effect since 5.6.1. I'm not sure why Wei added it, but I seem to recall > problems if it is not used. >
-template=no%extdef is covered on page 71 of the C++ compiler user guide (https://docs.oracle.com/cd/E60778_01/pdf/E60746.pdf). Crypto++ honors this pattern: hen generating preprocessor output with the -E or -P options, the definitions-separate file organization does not allow the template definitions to be included in the .i file. Compiling the .i file can fail due to missing definitions. By conditionally including the template definition file in the template declaration header (see the code example below), you can ensure the template definitions are available by using -template=no%extdef on the command line. The libCtd and STLport libraries are implemented in this way. // templace declaration file template <class T> class foo { ... }; #ifdef _TEMPLATE_NO_EXTDEF #include "foo.cc" //template definition file #endif However, do not attempt to define the macro _TEMPLATE_NO_EXTDEF yourself. When defined without the —template=no%extdef option, compilation failures can occur due to multiple inclusion of template definition files -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to cryptopp-users-unsubscr...@googlegroups.com. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.