Я публикую многоплатформенную библиотеку, и она работает везде, кроме Linux. Возможно, есть способ сделать то, что мне нужно, но я этого не вижу и надеюсь, что кто-то здесь может помочь.
Моя библиотека состоит из двух проектов: «subLibrary.lib» и «library.lib» в Windows (например). Я создаю 'subLibrary', затем связываю ее с 'библиотекой' для распространения. Потребители должны только связаться с «библиотекой», чтобы получить все, включая то, что находится в «subLibrary».
Все остальные платформы работают одинаково - я публикую один гигантский «library.a», который содержит все, и потребители связываются с ним, не имея необходимости знать о каких-либо зависимостях более низкого уровня.
При сборке стандартного исполняемого файла в Linux моя команда link должна указывать не только 'library.a', но и каждую его зависимость. Это связано с тем, что промежуточные библиотеки оставляют символы неразрешенными до позднего времени.
Что я хочу сделать, так это сделать его таким же, как и на других платформах, чтобы исполняемый файл-потребитель мог связываться только с «library.a», и эта библиотека содержала все, что ему нужно.
Я знаю, что это увеличит библиотеку, но это единственный способ обеспечить разрешение зависимостей и время сборки для всех.