The root-cause of the error is a change in your operating system, either due to a package update (i.e. apt-get update) or because you re-installed the entire system. An "older" installation of the respective library package included the '.la' file mentioned in the error message. The "newer" installation of the binary package does not include the ".la" file anymore. This is by itself NOT an issue. The issue is that *some* file (possible multiple) on your system include a reference to the ".la" file and tell libtool to inspect the ".la" file for linker information. So libtool tries to access it and fails.
The file that does refer to the ".la" file can have been generated either because:
- You compiled some software on your system that linked against the library while the ".la" file was still present. Common candidates include GNU libmicrohttpd (for libgcrypt.la) and a previous compile-run for GNUnet itself. This will result in references to the ".la" file both in the installed directory (i.e. $PREFIX/lib) as well as in the original source tree (relevant if you compile frequently from SVN HEAD).
- Your distribution is from an "unstable" series and contains a mixed bag of packages, for example an old version of GNUtls (compiled against an version of libgcrypt that had a libgcrypt.la by the maintainer) and a newer version of libgcrypt that no longer includes libgcrypt.la. This is a rare case, but if you sometimes edit your apt sources list, you might want to consider this possibility as well...
Finally, here is the solution. First, delete *all* ".la" files in/usr/lib/,/usr/local/lib/, other "lib/" directories from your "/etc/ld.so.conf" and whatever directory you use for the "--prefix" option when compiling/installing GNUnet (you should have those in your "LD_LIBRARY_PATH" environment variable). As your distribution has phased out the use of ".la" files, this should be safe, in fact, unless you fall under the second category there should be no ".la" files installed by your distribution packages anymore anyway.
Second, run "make distclean" in the directory with the GNUnet sources. It is likely that references to the ".la" file have been captured within the source tree already.
Finally, re-run "./configure" before re-running "make" / "make install".
Note that if you missed a ".la" file with a reference to the missing ".la" file, you'll have to re-do the second and the last step.
Finally, I should mention that linking the ".la" file to the ".so" file can also work but is an UGLY hack and in no way a clean solution to the problem.