2016-12-07 11 views
-1

Я пытаюсь использовать SDK для компилятора Matlab для упаковки моей программы Matlab в качестве общей библиотеки C++ в системе Debian. У меня есть папка, включая test.c, test.h, test.so (test - мое имя программы Matlab), и я установил Matlab_runtime в системе Debian. Я установил переменные LD_LIBRARY_PATH_ и _ XAPPLRESDIR_, как требуется в файле readme.txt _ * (_ ) замените MCR_ROOT на каталог, в котором на целевом компьютере установлено время выполнения MATLAB. (1) Задайте переменную окружения XAPPLRESDIR этому значению : MCR_ROOT/V91/X11/приложение-умолчанию (2) Если переменная среды LD_LIBRARY_PATH не определен, установите его в конкатенации следующих строк: MCR_ROOT/V91/выполнения/glnxa64: MCR_ROOT/V91/бен/glnxa64 : MCR_ROOT/v91/sys/os/glnxa64: MCR_ROOT/v91/sys/opengl/lib/glnxa64 _) * . Я редактирую мой main.cpp include test.h. когда я пытаюсь скомпилировать использовать main.cpp _ НКУ main.cpp -o основной _, я получил ошибку следующим образом: В файле включены в main.cpp: 2: 0: test.h: 15 : 22: ошибка плода: mclmcrrt.h: нет такого файла или каталога #include "mclmcrrt.h"Как интегрировать скомпилированный код matlab в C++ в системе Debian

I know that mclmcrrt.h is in the package of Matlab_runtime, it means I failed to link to the library of Matlab_runtime. Anybody knows what should I do to make my main.cpp compile successfully? I tried two days to work on how to connect to the Matlab_runtime library, but still failed. I am a beginner to linux. Great thanks if anyone can help. 

ответ

1

Это не проблема компиляции, а не связь. Ваш компилятор не знает, где находится mclmcrrt.h. Пожалуйста, помогите ему найти его, сказав это, где это:

gcc -I<the_folder_where_mclmcrrt.h_lives_in> ...

+0

Привет, большое спасибо за вашу помощь, теперь мой код может найти файлы головы, но теперь я встретил новые проблемы следующим образом: – micky

+0

/TMP/cc8IP6a1.o: в функции 'Основной ': main.cpp :(текст + 0xa):. неопределенная ссылка на' mclmcrInitialize_proxy'. main.cpp :(текст + 0x19): не определена ссылка на 'mclInitializeApplication_860_proxy» main.cpp :(текст + 0x48): неопределенная ссылка на 'testInitialize ' main.cpp :(. text + 0x77): неопределенная ссылка на' mlfTest' main.cpp :(. текст + 0x98): неопределенная ссылка на 'testTerminate ' main.cp p :(. text + 0x9d): неопределенная ссылка на 'mclTerminateApplication_proxy ' collect2: error: ld return 1 status status – micky

+0

Я знаю, что это должна быть проблема связывания с MCR. мой код: gcc -L/home/yuan/Documents/Matlab2016b/Matlab_runtime/v91/extern/lib/glnxa64 -L/home/yuan/Documents/Matlab2016b/Matlab_runtime/v91/bin/glnxa64 -I/home/yuan/Documents/Matlab2016b/Matlab_runtime/v91/extern/include -I./test -lstdC++ -lgcc_s main.cpp -o main. Как мне сделать, чтобы связать MCR успешно? – micky

Смежные вопросы