Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Проблема с подключением созданного .LIB-файла |
Автор: avn 29.9.2010, 15:47 | ||
Доброго времени суток! Имеется такая проблема в 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. Если же я в теле программы явно указываю
, то все линкуется без проблем. Вопрос - где засада??? Я пробовал вместо $(ALIBRARY_LIB) указывать прямой путь - тот же результат. Компилируется без вопросов, хотя я в теле программ использую #include <ALibrary.h> и путь к ALibrary.h указан тем же самым образом. Все откомпилировано в одной версии Visual Studio |
Автор: avn 29.9.2010, 17:33 | ||||
Почему я должен указывать файл для своей библиотеки, но не должен для того же Boost? Для него достаточно прописать в свойствах среды, а не указывать каждый LIB. В чем разница? Добавлено через 1 минуту и 22 секунды
Причем тут Directories? |
Автор: borisbn 30.9.2010, 07:22 |
Вообще то, ты и стандартные библиотеки win32 должен указывать для линковщика. Просто за тебя это делает визард создания проекта. Загляни в свойства проекта в раздел linker, и ты увидишь там kernel32.lib, user32.lib и, скорее всего boost.lib. А о твоей библиотеке визард не знает, но ты можешь его научить: подправить шаблон нового проекта |
Автор: jonie 30.9.2010, 19:06 |
borisbn, буст через pragma затягиватся в проект, просто это внутрях буста сделано |
Автор: borisbn 30.9.2010, 19:51 |
jonie, а в gcc pragma работает, или там другой механизм ? |
Автор: jonie 30.9.2010, 22:40 | ||
borisbn, вот ответ насчет "поддержка прагма lib":
|
Автор: borisbn 1.10.2010, 06:46 |
jonie, ![]() Добавлено через 13 минут и 36 секунд avn, jonie своим ответом про boost подсказал тебе как в vc удобнее включать свою библиотеку - через pragma в своём h-нике |
Автор: avn 1.10.2010, 14:52 | ||
И вправду! ![]() Поиск в нутрях BOOST-а подтвердил наличие pragm-ы. Спасибо! Вопрос решен |