Хорошо, вот мой вопрос:
У меня есть работающий проект DUB, который создает приложение. Я решил, что мне также нужна конфигурация "библиотеки" в моем файле dub.json
:
"configurations": [
{
"name": "application",
"targetType": "executable"
},
{
"name": "library",
"targetType": "library",
}
],
Итак, теперь, когда я собираю проект с использованием dub build --config=library
, он создает файл libXXXX.a
в том же каталоге.
Пока все хорошо.
Я пытался использовать эту библиотеку (на самом деле крошечная тестовая функция, помеченная как extern "C"
из тестового приложения C).
Итак, Я компилирую свое приложение C, используя gcc -c ctest.c
, а затем связываю их все вместе, как dmd libMYLIBRARY.a ctest.o
.
Теперь вот проблема:
На этом последнем шаге, компоновщик жалуется на отсутствие многих символов - все они исходят из внешних зависимостей (2 объектных файла и несколько .a
библиотек), которые обычно связываются при сборке проекта как приложения.
Итак, вопрос в том ... как мне решить эту проблему?
Я имею в виду ... Должен ли я просто связать свое тестовое приложение C со ВСЕМИ исходными зависимостями (это непо общему признанию, сделать библиотеку очень портативной)у библиотеки, только связавшись с моим libXXXXX.a
файлом?