Ich gehe durch einen C-WebSocket-Programmiercode mit einer module_open
-Funktion. Ich bin ein Linker-Fehler immer dies besagt:Undefiniert Referenz zu module_open
/tmp/ccJ3uaHB.o: In function `main':
main.c:(.text+0x8a): undefined reference to `module_open'
collect2: ld returned 1 exit status
Diese Funktion in einer Datei definiert ist server.h
als:
extern struct server_module* module_open (const char* module_path);
jetzt nur einen entsprechenden Code, einschließlich der Funktion module_open
in main()
wird wie folgt verwendet:
#include <stdio.h>
#include <netdb.h>
#include "server.h"
#include <string.h>
int main()
{
struct server_module* module = NULL;
const char* page;
if(*page == '/' && strchr(page + 1, '/') == NULL)
{
char module_file_name[64];
snprintf(module_file_name, sizeof(module_file_name), "%s.so", page + 1);
/* Try to open the module. */
module = module_open (module_file_name);
}
}
Und falls es hilft hier die struct module
von server.h
auch
/* An instance of a loaded server module. */
struct server_module {
/* The shared library handle corresponding to the loaded module. */
void* handle;
/* A name describing the module. */
const char* name;
/* The function which generates the HTML results for this module. */
void (* generate_function) (int);
};
Ja! Habe gerade 'ldl' Flag übergeben und es funktioniert! Danke dafür! –