Как создать отдельную библиотеку для включения в C++/Eclipse
Я получил немного кода C++ для работы с анализатором TinyXML. Однако для этого мне пришлось включить исходный код из TinyXML в свой обычный исходный код. Я хотел бы включить TinyXML в качестве отдельной библиотеки. Я использую Eclipse с компилятором Cygwin C++. Какой хороший способ сделать это?
2 ответа
Я предполагаю, что вы хотите отделить библиотеку от исходного кода вашего собственного проекта... но вы не знаете, как создать библиотеку, если она не находится в той же папке.
Предполагая, что ваша библиотека имеет предварительно скомпилированные файлы *.lib и *.h:
- Переместить исходный код библиотеки в отдельный каталог
- Менубар "Проект"
- Меню "Свойства" откроет диалоговое окно для всех свойств проекта, слева будет список.
- Элемент списка "C/C++ Build" изменит графический интерфейс и покажет вам все параметры компилятора / компоновщика / ассемблера gcc (я никогда не делаю ассемблер... поэтому я ничего не делаю с ассемблером). [1]
- GCC C Compiler -> Каталоги:
- Зеленый значок плюса [2] -> Укажите путь к вашим *.h файлам
- Теперь ваш компилятор должен быть доволен (но вы не сможете связать, потому что компоновщик не знает, каковы фактические определения каждой функции)
- GCC C Linker -> Библиотеки:
- Путь поиска в библиотеке (-L) -> Зеленый значок плюс -> Укажите путь к вашим *.lib файлам
- Библиотеки (-l) -> Зеленый значок плюс -> Укажите имя каждой библиотеки, которую вы используете
- Ваш компоновщик должен быть счастлив, и ваш код должен скомпилироваться
[Сноска - 1] Панель сборки GUI C/C++ - это оболочка для компилятора / компоновщика командной строки gcc... она просто упрощает использование, потому что она показывает все визуально.
[Сноска - 2] Значок "+" - это то, что сообщит компилятору, где находятся ваши библиотеки *.h, включающие файлы. Компилятору нужны файлы *.h, чтобы знать, какие прототипы функций есть в вашей библиотеке до ее компиляции.
Предполагая, что у вас есть фактические (не скомпилированные) *.c и *.h:
- Проделайте те же шаги, что и выше, за исключением шага 7.
- На шаге 7. вам нужно убедиться, что файлы библиотеки *.c видны в Eclipse "управляемого make". Если он не видит исходный код, вам нужно указать, где находится источник, чтобы он скомпилировал его.
Это в принципе легко. Вы компилируете свой исходный код для библиотеки и создаете библиотеку с помощью ar (1). Да, удивительно, библиотека - это просто архив; UNIX это круто.
Затем вы можете включить код в качестве статической библиотеки при создании окончательного кода.
Я не очень много использую Eclipse, поэтому не могу рассказать вам точный процесс в IDE, но я считаю, что вам нужно создать отдельный проект для его создания.
Теперь, если вам нужно создать DLL, вам нужно использовать некоторые специальные флаги. Здесь есть хорошая страница.