У меня есть существующая библиотека с несколькими функциями, назовем ее mylib
.Я решил использовать Matlab Coder, чтобы помочь мне написать мои c-файлы.Эти c-файлы скомпилированы и связаны для генерации mylib
с использованием VS 2015.
Итак, я проверил эту теорию, я сначала начал с преобразования funcA.m
в funcA.c
с использованием matlab coder ver 3.4 (R2017b)
.funcA
является простой математической функцией.Затем я скомпилировал и связал все c-файлы, сгенерированные кодировщиком Matlab, чтобы включить funcA
внутри mylib
.И это сработало отлично.Это означает, что funcA
, который изначально был m-файлом, был скомпилирован, связан с mylib
и дал точные результаты.
Проблема возникает, когда я использую Matlab Coder для генерации моей второй функции.Давайте назовем вторую функцию -> funcB
После преобразования funcA.m в funcA.c, кодировщик Matlab сгенерировал другие c-файлы, которые включают xgeqp3.c
и xnmr2.c
и соответствующие им заголовочные файлы.Я считаю, что они не читаются людьми, потому что они были автоматически сгенерированы matlab coder
, и читать их неудобно для человека, как вы можете сказать по имени c-файлов.Однако они вызываются funcA
, поэтому их также необходимо скомпилировать в библиотеку.
Эти сгенерированные Matlab c-файлы вызвали у меня проблемы, потому что когда я конвертировал funcB.m
в funcB.c
, он также генерировал xgeqp3.c
и xnmr2.c
.Хотя имена файлов идентичны, их содержимое различно, с разными формальными параметрами и, конечно, разными c-кодами, даже если они имеют одинаковые имя функции и имя файла.
Таким образом, одна и та же библиотека не может содержать эти двафункции, сгенерированные Matlab Coder, потому что объявления для xgeqp3.c
и xnmr2.c
противоречат.Я уверен, что другие люди могут иметь такую же проблему.Есть ли способ, которым я могу вручную назвать дополнительные c-файлы, сгенерированные моим matlab-кодером, чтобы я мог избежать таких повторяющихся имен?Или есть способ, которым я могу управлять c-файлами с дублирующимися именами, но разными кодами?Более простой вариант - создать отдельные библиотеки для двух функций.Но я хочу, чтобы все мои математические функции были в одной библиотеке.
Как мне справиться с этой ситуацией?Я открыт для новых идей.Заранее спасибо.