#c #linux #eclipse #matlab #g
#c #linux #eclipse #matlab #g
Вопрос:
Я сгенерировал модель simulink в коде C и написал вокруг нее фреймворк C . Он хорошо работает в Windows, но теперь я хочу скомпилировать его в среде Linux, чтобы иметь возможность запускать его в кластере Linux (без использования эмулятора Windows). Я настроил его в Eclipse CDT на узле кластера и, насколько мне известно, добавил все настройки компоновщика, но при попытке компиляции я получаю ошибки компоновки.
Последняя команда компилятора находится в форме (пример для libmex.so библиотека matlab)
g -L{path to Matlab/bin/glnxa64} -o VCTSClient -lmex
Однако существует большое количество связанных библиотек, поэтому я не могу вставить все это целиком.
Большинство библиотек работают нормально, но некоторые нет. Полное сообщение об ошибке гласит:
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -lhdf5_hl
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -ltbb
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -ltbbmalloc
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licuuc
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -lhdf5
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licudata
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licuil8n
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licuio
По какой-то причине они не могут быть найдены, хотя я успешно (насколько я знаю) ссылаюсь на другие библиотеки в том же каталоге — например, libmex.so упоминалось выше.
Как мне отладить эту проблему?
Ответ №1:
Я не уверен, является ли это источником вашей проблемы, но вы пытались сгенерировать модель из Matlab, работающую в Linux? Я не использовал Matlab в Linux, но возможно, что он не генерирует один и тот же код между версиями Linux и Windows. Это может объяснить, почему вы получаете ошибки привязки.