![]() |
|
|
![]()
|
|
| Avaj |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
Например создал я в Code::Blocks(Windows) проект - Static Library, назвал его my_lib.
Написал main.cpp функцию:
И как бы теперь юзать эту библиотеку (или я не прав) в другом проекте? |
|||
|
||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Тебе надо в свойствах проекта подключить данную библиотеку.
Это сообщение отредактировал(а) Acer - 24.2.2009, 16:35 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
Прав прав...юзай, только заголовочные файлы не забудь..
поконкретней - берешь заголовочный файл описывающий int my_function, CPP ты уже слинковал в lib файл. Подключаешь свой либ к проекту, делаешь #include "mylibheader.h" и будет тебе счастье.. |
|||
|
||||
| Avaj |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
Спасибо, но нужно ещё подробнее.
Куда девать файл libmy_lib.a? в папку CodeBlocks\MinGW\lib? А файл "mylibheader.h" в CodeBlocks\MinGW\include? И как в свойствах проекта подключить данную библиотеку? Нажав на вкладку Libraries я обнаружил, что там пусто - нет доступных библиотек. |
|||
|
||||
| pan2004 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 357 Регистрация: 28.7.2007 Репутация: нет Всего: 9 |
Да куда хочешь, туда и бросай. Только вот в папки mingw я бы не стал(какое отношение твоя либа имеет к mingw?) ну так впиши сам. Ручками. |
|||
|
||||
| Avaj |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
А где должен быть заголовочный файл с описаниями функций библиотеки? Я пытался добавить в проект, но тогда при компиляции происходит ошибка - не находит этот файл.
Мне говорили что его надо добавлять в папку "CodeBlocks\MinGW\include", и в этом случае компиляция происходит без ошибок, но при попытке запуска программы появляется сообщение, что:
Т.е. ещё нужно чтобы где-то был этот объектный файл, но у меня такого вообще нет, есть только main.o. Может у кого есть ссылка на пошаговую инструкцию по подключению статич. библиотеки к проекту? Или Это сообщение отредактировал(а) Avaj - 25.2.2009, 14:33 |
||||
|
|||||
| Avaj |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
Ещё актуально.
|
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: нет Всего: 37 |
Самая лучшая книга по GCC, в ней есть все ответы на твои вопросы:
GCC. Настольная книrа пользователей, проrраммистов и системных администраторов -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 4 Всего: 196 |
Avaj, в двух словах.
1. Допустим, файл библиотеки называется libmylib.a 2. Помести свою библиотеку в директорию drive:\some\path\lib 3. Помести h файл от этой библиотеки в drive:\some\path\include 4. Добавь опцию компилятора -Idrive:/some/path/include 5. Добавь опции линкера -Ldrive:/some/path/lib -lmylib Пункты 4 и 5 можно сделать средствами среды (добавить путь для поиска библиотек, заголовочных файлов и подключаемые библиотеки) |
|||
|
||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Я всегда библиотеку закидываю в Debug или Release директории в проекте, а *.h файл в директорию с сорцами проекта...
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 4 Всего: 196 |
А зря. Я, например, завел специальную папку для сторонних библиотек. |
|||
|
||||
| Avaj |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
bsa, всё делаю точно как ты написал( да и раньше так делал), но всегда при компиляции происходит ошибка, что моя функция f() из библиотеки не найдена -
Знает ли кто-нибудь, как использовать статич. либы именно в CodeBlocks? Это сообщение отредактировал(а) Avaj - 26.2.2009, 16:43 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 4 Всего: 196 |
Build options - Linker settings - Link libraries
Добавлять нужно без приставки lib и без расширения, т.е. для подключения libmylib.a нужно вписать mylib |
|||
|
||||
| Avaj |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 14.7.2008 Где: Владивосток. Репутация: нет Всего: 3 |
bsa, т.е. библиотеку нужно указать так:
или без пути? Но в моём случае разницы нет - никак не работает.
Рядом со вкладкой Linker settings есть вкладка Search directories и там есть три вкладки - Compiler, Linker, Resource Compiler - нужно ли добавлять что-то в них? (я добавлял в Linker и Compiler пути до либы и до заголовочника, соответственно, - эффекта нет) Может нужно заголовочный файл называть как-то по особенному? И нужно ли его компилить вместе с библиотекой? Это сообщение отредактировал(а) Avaj - 27.2.2009, 10:23 |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 4 Всего: 196 |
Avaj, заголовочный файл не надо называть как-то особенно.
проверяй, какие команды посылает Code::Blocks при сборке проекта. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | GNU toolchain | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |