Borland | |
Digital Mars |
Например, чтобы скомпилировать
$ g++ -с -о john.o john.cpp
$ g++ -с -о paul.o paul.cpp
$ g++ -с -о johnpaul.о johnpaul.cp
p
Теперь скомпонуйте эти объектные файлы в статическую библиотеку следующим образом.
$ ar ru libjohnpaul.a john.o paul.o johnpaul.о
$ ranlib libjohnpaul.а
При использовании GCC в Unix для создания статической библиотеки вы используете две отдельные команды: во-первых, вы вызываете архиватор
Как вы можете видеть в табл. 1.10, архиватор Borland
В некоторых наборах инструментов в качестве архиватора может использоваться компоновщик, если ему передать соответствующую опцию командной строки. В других наборах должен использоваться отдельный архиватор.
Рецепты 1.8, 1.11 и 1.16.
1.4. Сборка динамической библиотеки из командной строки
Вы хотите использовать свои инструменты командной строки для сборки динамической библиотеки из набора исходных файлов С++, таких как перечисленные в примере 1.2.
Выполните следующие шаги.
1. Используйте компилятор для компиляции исходных файлов в объектные файлы. Если вы используете Windows, то для определения макросов, необходимых для организации экспорта символов динамической библиотеки, используйте опцию GEORGERINGO_DLL
. Если вы собираете библиотеку, написанную кем-то другим, то макросы, которые требуется определить, должны быть описаны в инструкции по установке.
2. Используйте компоновщик для создания из объектных файлов, созданных на шаге 1, динамической библиотеки.
Если динамическая библиотека зависит от других библиотек, то компилятору требуется сказать, где искать заголовочные файлы этих библиотек, а компоновщику требуется указать имена этих библиотек и их расположение. Этот вопрос подробно обсуждается в рецепте 1.5.
Основные команды для выполнения первого шага приведены в табл. 1.8 Вы должны соответственно изменить имена входных и выходных файлов. Команды для выполнения второго шага приведены в табл. 1.11. Если вы используете инструментарий, который поставляется как со статическим, так и с динамическим вариантами библиотек времени исполнения, укажите компилятору и компоновщику использовать динамический вариант, как описано в рецепте 1.23.
Инструментарии | Командная строка |
---|---|
GCC | |
GCC (Mac OS X) | |
GCC (Cygwin) | |
GCC (MinGW) |