Как создать отдельную библиотеку для включения в C ++ / Eclipse - PullRequest
3 голосов
/ 25 апреля 2009

Я получил код C ++ для работы с анализатором TinyXML. Однако для этого мне пришлось включить исходный код из TinyXML в мой обычный исходный код. Я хотел бы включить TinyXML в качестве отдельной библиотеки. Я использую Eclipse с компилятором Cygwin C ++. Какой хороший способ сделать это?

Ответы [ 2 ]

4 голосов
/ 25 апреля 2009

Я предполагаю, что вы хотите отделить библиотеку от исходного кода вашего собственного проекта ... но вы не знаете, как создать библиотеку, если она не находится в той же папке.


Предполагается, что в вашей библиотеке предварительно скомпилированы файлы * .lib и * .h:

  1. Переместить исходный код библиотеки в отдельный каталог
  2. Менубар "Проект"
  3. Меню «Свойства» откроет диалоговое окно для всех свойств проекта, слева будет список.
  4. Элемент списка «Сборка C / C ++» изменит графический интерфейс и покажет вам все параметры компилятора / компоновщика / ассемблера gcc (я никогда не делаю ассемблер ... поэтому я ничего не делаю с ассемблером). [1]
  5. Компилятор GCC C -> Каталоги:
    image
  6. Зеленый значок плюс [2] -> Укажите путь к вашим * .h файлам
  7. Ваш компилятор теперь должен быть счастлив (но вы не сможете связать, потому что компоновщик не знает, каковы фактические определения каждой функции)
  8. GCC C Linker -> Библиотеки:
    image
  9. Путь поиска в библиотеке (-L) -> Зеленый значок плюс -> Укажите путь к вашим * .lib-файлам
  10. Библиотеки (-l) -> Зеленый значок плюс -> Укажите имя каждой библиотеки, которую вы используете
  11. Ваш компоновщик должен быть счастлив, и ваш код должен скомпилироваться

[Сноска - 1] Панель сборки GUI C / C ++ - это оболочка для компилятора / компоновщика командной строки gcc ... она просто упрощает использование, поскольку она показывает все визуально.

[Footnote - 2] Значок «+» указывает компилятору, где находятся файлы, в которые включены ваши библиотеки * .h. Компилятору нужны файлы * .h, чтобы знать, какие прототипы функций есть в вашей библиотеке до ее компиляции.


Предполагается, что у вас есть фактические (не скомпилированные) * .c и * .h:

  1. Выполните те же шаги, что и выше, за исключением шага 7.
  2. На шаге 7. вам нужно убедиться, что файлы * .c библиотеки видны в Eclipse-программе «make make». Если он не видит исходный код, вам нужно указать, где находится источник, чтобы он скомпилировал его.
2 голосов
/ 25 апреля 2009

Это в принципе легко. Вы компилируете свой исходный код для библиотеки и создаете библиотеку с помощью ar (1) . Да, удивительно, библиотека - это просто архив; UNIX это круто.

Затем вы можете включить код в качестве статической библиотеки при создании окончательного кода.

Я не слишком часто использую Eclipse, поэтому не могу рассказать вам точный процесс в IDE, но я считаю, что вам нужно создать отдельный проект для его создания.

Теперь, если вам нужно создать DLL, вам нужно использовать некоторые специальные флаги. Здесь есть хорошая страница .

...