Я пытаюсь объявить глобальную функцию, доступную через разные * .c файлы.
Я объявил ее в param.hxx, определил ее в param.cxx и хотел бы получить к ней доступ в compute_grid.c.
К сожалению, во время компиляции у меня возникает следующая ошибка:
compute_grid.c:(.text+0x5) : undefined reference to « grid_create »
Я не очень знаком с такими объявлениями функций в C. На самом деле я создаю часть модулябольшой программы, я скопировал это объявление из другого файла кода, который, кажется, работает?!
К сожалению, программа очень конфиденциальна, у меня нет доступа ко всем источникам, но я будусделать все возможное, чтобы дать вам вычеркнутые детали ...
param.hxx:
typedef struct grid_t
{
int *test;
} grid_t;
void
grid_create(void);
extern grid_t *grid;
param.cxx:
#include <malloc.h>
#include "param.hxx"
grid_t *grid;
void grid_create(void)
{
grid = (grid_t*)malloc(sizeof(grid_t));
grid->test = (int*)malloc(sizeof(int));
*grid->test = 123;
}
compute_grid.c:
#include "param.hxx"
void
compute_grid()
{
grid_create();
return;
}
Спасибо за помощь!