Я пытаюсь скомпилировать программу для удаления изображения. я пытаюсь запуститьОшибка Matlab компиляции файлов C с помощью mex
mex apply_blur_kernel_mex.c
где файл apply_blur_kernel_mex.c имеют следующий код
#include <mex.h>
#include <stdlib.h>
#include <math.h>
#include <matrix.h>
#include "ow_homography.h"
...
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
...
compute_homography_matrix(Ksharp, &theta_list[k*3], invKblurry, H);
...
}
Проблема заключается в функции compute_homography_matrix, которая находится в другом файле ow_homography.h
#ifndef OW_HOMOGRAPHY_H
#define OW_HOMOGRAPHY_H
#include "ow_mat3.h"
INLINE void compute_homography_matrix(const double *Ksharp, const double *theta, const double *invKblurry, double *H) {
double R[9];
/* Compute homography */
cp3(invKblurry,H);
rot3(theta[0],theta[1],theta[2],R);
mmip3(R,H);
mmip3(Ksharp,H);
}
Эти последние операции (cp3, rot3 ...) находятся в другом файле ow_mat3.h, который содержит все операции для программы. Так что, когда я пытаюсь вызвать
mex apply_blur_kernel_mex.c
У меня есть следующая проблема:
Error using mex
Undefined symbols for architecture x86_64:
"_compute_homography_matrix", referenced from:
mexFunction in apply_blur_kernel_mex.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Любые предложения, чтобы решить эту проблему? Спасибо всем.
функции, описанная в вашей ошибке электронного письма с префиксом подчеркиванием в то время как код в вашем примере не – chiliNUT
НКУ имеют приятный '-fleading-underscore' принуждать подчеркивания на символах. Не знаю о лягу. –