Как исключить с помощью GPRbuild некоторые функции? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть исполняемый файл в Ada, скомпилированный с gprbuild. Этот исполняемый файл использует некоторую простую функцию (например, sin e cos). Этот исполняемый файл работает в приложении, связанном с POS (операционная система раздела), разработанной с помощью vxwork.После перекомпиляции всего процесса появляется множество ошибок объявления функций между POS_API.o и исполняемым файлом ada (hello.o).Эти функции (sin, cos, ...) находятся в одной библиотеке.К сожалению, самое простое решение для отмены ссылки на всю эту функцию в POS не разрешено (ограничение дизайна). Есть предложения о том, как скомпилировать или продолжить?Это какая-нибудь возможность компилировать без определенной библиотеки или какой-либо функции, чтобы избежать многократной ссылки?

1 Ответ

0 голосов
/ 21 февраля 2019

Боюсь, что на самом деле это не ответ: во многом потому, что прошло более десяти лет с тех пор, как я работал с VxWorks и Ada, и все стало немного туманно.Кроме того, немного длинно для комментария по вашему вопросу

. Поскольку я использовал его, VxWorks поставляется с целым набором программного обеспечения, которое вы конфигурируете для хранения только тех компонентов, которые вам нужны в вашем ядре: в данном случае этопредположительно будет включать пакет математики, такие функции, как sin(), а также функции операционной системы, такие как taskSpawn().

. Процесс сборки Ada / VxWorks, который мы использовали, генерирует частично связанный объектный файл со ссылками наsin(), taskSpawn() неразрешено (я не могу вспомнить, как это достигается; если используется GNU ld, возможно, переключатель -r или --relocatable?).Когда VxWorks загружает этот объектный файл через сконфигурированное ядро, неразрешенные ссылки разрешаются, и мы уходим.

Теперь я не знаю, что делает ваш POS_API.Это скин поверх сконфигурированного ядра VxWorks?Загружается ли ваша программа Ада сама?Если это сама программа VxWorks, то почему она экспортирует sin()?

Я подозреваю, что проблема связана с тем, как вы связали свой исполняемый файл.Может быть, вы могли бы показать нам свой файл GPR?Иначе я просто насвистываю в темноте.

...