Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с подключением созданного .LIB-файла, Не удается подключать библиотеку 
V
    Опции темы
avn
Дата 29.9.2010, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 25.10.2005

Репутация: нет
Всего: нет



Доброго времени суток!

Имеется такая проблема в Visual Studio 9.

Я для своих нужд разработал множество библиотек. Создается файл ALibrary-debug.lib для отладочной версии и ALibrary-release.lib для финальной в директории (допустим) C:\###\ALibrary\Export\Lib .

Поскольку эта библиотека у меня используется активно в целой куче проектов, я ее определяю в два этапа:

1) создаю переменную среды ALIBRARY_LIB, в которой хранится C:\###\ALibrary\Export\Lib

2) в Visual Studio в Tools \ Options \ Projects and Solutions \ VC++ Directories \ Library files я сверху указываю " $(ALIBRARY_LIB) "

Теперь во всех моих программах по идее оно должно подключаться автоматически. Но при линковке выдает LNK2001 и LNK2019.

Если же я в теле программы явно указываю

Код

#ifdef    _DEBUG
    #pragma comment(lib, "ALibrary-debug.lib")
#else    _DEBUG
    #pragma comment(lib, "ALibrary-release.lib")
#endif    _DEBUG


, то все линкуется без проблем.

Вопрос - где засада???

Я пробовал вместо $(ALIBRARY_LIB) указывать прямой путь - тот же результат.

Компилируется без вопросов, хотя я в теле программ использую #include <ALibrary.h> и путь к ALibrary.h указан тем же самым образом.

Все откомпилировано в одной версии Visual Studio
PM MAIL   Вверх
borisbn
Дата 29.9.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 2
Всего: 135



в 
Цитата(avn @  29.9.2010,  15:47 Найти цитируемый пост)
Tools \ Options \ Projects and Solutions \ VC++ Directories \ Library files

ключевое слово Directories. А какой именно файл необходимо подключить в проект ты должен указывать в самом проекте или так как ты сделал ( #pragma ... ) или в свойствах проекта/Linker/Input/Additional Dependencies


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
avn
Дата 29.9.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 25.10.2005

Репутация: нет
Всего: нет



Цитата(borisbn @ 29.9.2010,  17:21)
А какой именно файл необходимо подключить в проект ты должен указывать в самом проекте или так как ты сделал ( #pragma ... ) или в свойствах проекта/Linker/Input/Additional Dependencies

Почему я должен указывать файл для своей библиотеки, но не должен для того же Boost? Для него достаточно прописать в свойствах среды, а не указывать каждый LIB.

В чем разница?

Добавлено через 1 минуту и 22 секунды
Цитата(borisbn @ 29.9.2010,  17:21)
ключевое слово Directories

Причем тут Directories?
PM MAIL   Вверх
borisbn
Дата 30.9.2010, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 2
Всего: 135



Вообще то, ты и стандартные библиотеки win32 должен указывать для линковщика. Просто за тебя это делает визард создания проекта. Загляни в свойства проекта в раздел linker, и ты увидишь там kernel32.lib, user32.lib и, скорее всего boost.lib. А о твоей библиотеке визард не знает, но ты можешь его научить: подправить шаблон нового проекта


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
jonie
Дата 30.9.2010, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



borisbn, буст через pragma затягиватся в проект, просто это внутрях буста сделано


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
borisbn
Дата 30.9.2010, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 2
Всего: 135



jonie, а в gcc pragma работает, или там другой механизм ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
jonie
Дата 30.9.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



borisbn, вот ответ насчет "поддержка прагма lib": 
Цитата

Simple; you can't. GCC has no such equivalent. Specify -l as a gcc parameter, create a linker script, call ld, call 911 or whatever.



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
borisbn
Дата 1.10.2010, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 2
Всего: 135



joniesmile

Добавлено через 13 минут и 36 секунд
avnjonie своим ответом про boost подсказал тебе как в vc удобнее включать свою библиотеку - через pragma в своём h-нике 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
avn
Дата 1.10.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 25.10.2005

Репутация: нет
Всего: нет



Цитата(borisbn @ 1.10.2010,  06:46)
avnjonie своим ответом про boost подсказал тебе как в vc удобнее включать свою библиотеку - через pragma в своём h-нике

И вправду!

 smile 

Поиск в нутрях BOOST-а подтвердил наличие pragm-ы.

Спасибо!

Вопрос решен
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.