Ich habe versucht das Plugin Beispiel in der Datei Makefile-Dokumentation (https://www.gnu.org/software/make/manual/make.html) gegeben zu kompilieren:Wie kompiliere ich ein Makefile-Plugin?
#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <gnumake.h>
int plugin_is_GPL_compatible;
char *
gen_tmpfile(const char *nm, int argc, char **argv)
{
int fd;
/* Compute the size of the filename and allocate space for it. */
int len = strlen (argv[0]) + 6 + 1;
char *buf = gmk_alloc (len);
strcpy (buf, argv[0]);
strcat (buf, "XXXXXX");
fd = mkstemp(buf);
if (fd >= 0)
{
/* Don't leak the file descriptor. */
close (fd);
return buf;
}
/* Failure. */
fprintf (stderr, "mkstemp(%s) failed: %s\n", buf, strerror (errno));
gmk_free (buf);
return NULL;
}
int
mk_temp_gmk_setup()
{
/* Register the function with make name "mk-temp". */
gmk_add_function ("mk-temp", gen_tmpfile, 1, 1, 1);
return 1;
}
aber beim Laufen die folgende Zeile: gcc -c mk_temp.c -fPIC, ich Nachricht erhalten folgende Fehlermeldung:
mk_temp.c:8:21: fatal error: gnumake.h: No such file or directory
Ich konnte diese Datei nicht in meinem Computer finden. Ich habe sogar die Makefile 3.8.1 (die gleiche Makefile-Version, die ich installiert habe) heruntergeladen, ist aber auch nicht da.
Wer weiß, wie man diese Datei bekommt oder was mache ich falsch?
Danke, Andrés.
Um absolut klar zu sein, '3.8.1' ist nicht einmal eine gültige GNU make-Version. Du meinst '3.81', nicht' 3.8.1'. – MadScientist
@MadScientist In der Tat. Fest. –